matlab中zeros函数的问题,求大侠解答

matlab中zeros函数的问题,求大侠解答,第1张

input

=

round(i);

这句话改成input

=

double(i);

round是四舍五入,imread读出来的矩阵本来就是unsigned

int。

错误是因为zeros的输入不可以是

uint的,改成double就OK了

zeros()创建一个元素全为0的矩阵,参数30和1定义了矩阵的行数和列数。

zeros(30,1)的结果就是30行1列,全为0的矩阵。

zeros(30,1)+1,就是把每个元素都加1,结果就是30行1列的全为1的矩阵

>> c=zeros(10,1)+1

c =

1

1

1

1

1

1

1

1

1

1

您好,这是C语言问题:

x=zeros(3,1)

x =

     0

     0

     0

表示三行一列的0矩阵

matlab中如何定义变量从负无穷到正无穷:

inf(无穷大)是Matlab预定义变量,负无穷大用-inf表示,正无穷大用+inf表示。

定义变量从负无穷到正无穷,可以这样来应用,如

>> syms x

>> int(exp(-x^2),-inf,+inf)     %exp(-x^2)的定积分,x变量从负无穷到正无穷

ans =

pi^(1/2)

== TA α n=0:50; %定义序列的长度是 50 A=1; %设置信号有关的参数 a=04; T=1; %采样率 w0=20734; x=Aexp(-anT)sin(w0nT); %pi 是 MATLAB 定义的π,信号乘可采用“ ” close all %清除已经绘制的 x(n)图形 subplot(3,1,1);stem(x); %绘制 x(n)的图形 title(‘理想采样信号序列 ’); k=-25:25; W=(pi/125)k; X=x(exp(-jpi/125))^(n’k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱 ’) 2、单位脉冲序列 在 MatLab 中,这一函数可以用 zeros 函数实现: n=1:50; %定义序列的长度是 50 x=zeros(1,50); %注意: MATLAB 中数组下标从 1 开始 x(1)=1; close all; subplot(3,1,1);stem(x);title(‘单位冲击信号序列 ’); k=-25:25; X=x(exp(-jpi/125))^(n’k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱 ’) 3、矩形序列 n=1:50 x=sign(sign(10-n)+1); close all; subplot(3,1,1);stem(x);title(‘单位冲击信号序列 ’); k=-25:25; X=x(exp(-jpi/25))^(n’k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱 ’) 4、特定冲击串: )3()2(52)1(52)()( +++= nnnnnx δδδδ n=1:50; %定义序列的长度是 50 x=zeros(1,50); %注意: MATLAB 中数组下标从 1 开始 x(1)=1;x(2)=25;x(3)=25;x(4)=1; close all; subplot(3,1,1);stem(x);title(‘单位冲击信号序列 ’); k=-25:25; X=x(exp(-jpi/125))^(n’k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱 ’) 5、卷积计算: ∑ +∞ ∞= == m mnhmxnhnxny )()()()()( 在 MATLAB 中。提供了卷积函数 conv,即 y=conv(x,h),调用十分方便。例如: 系统: )3()2(52)1(52)()( +++= nnnnnh b δδδδ 信号: 500),sin()( 0 <≤= nnTAetx nT a α n=1:50; %定义序列的长度是 50 hb=zeros(1,50); %注意: MATLAB 中数组下标从 1 开始 hb(1)=1;hb(2)=25;hb(3)=25;hb(4)=1; close all; subplot(3,1,1);stem(hb);title(‘系统 hb[n]’); m=1:50; %定义序列的长度是 50 A=444128; %设置信号有关的参数 a=50sqrt(20)pi; T=0001; %采样率 w0=50sqrt(20)pi; x=Aexp(-amT)sin(w0mT); %pi 是 MATLAB 定义的π,信号乘可采用“ ” subplot(3,1,2);stem(x);title(‘输入信号 x[n]’); y=conv(x,hb); subplot(3,1,3);stem(y);title(‘输出信号 y[n]’); 6、卷积定律验证 k=-25:25; X=x(exp(-jpi/125))^(n’k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,2,1);stem(magX);title(‘输入信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,2,2);stem(angX) ; title (‘输入信号的相位谱 ’) Hb=hb(exp(-jpi/125))^(n’k); magHb=abs(Hb); %绘制 hb(n)的幅度谱 subplot(3,2,3);stem(magHb);title(‘系统响应的幅度谱 ’); angHb=angle(Hb); %绘制 hb(n)的相位谱 subplot(3,2,4);stem(angHb) ; title (‘系统响应的相位谱 ’) n=1:99; k=1:99; Y=y(exp(-jpi/125))^(n’k); magY=abs(Y); %绘制 y(n)的幅度谱 subplot(3,2,5);stem(magY);title(‘输出信号的幅度谱 ’); angY=angle(Y); %绘制 y(n)的相位谱 subplot(3,2,6);stem(angY) ; title (‘输出信号的相位谱 ’) %以下将验证的结果显示 XHb=XHb; Subplot(2,1,1);stem(abs(XHb));title(‘x(n)的幅度谱与 hb(n)幅度谱相乘 ’); Subplot(2,1,2);stem(abs(Y);title(‘y(n)的幅度谱 ’); axis([0,60,0,8000])

MATLAB中的poly函数用于求以向量为解的方程或方阵的特征多项式,可直接传递多项式方程的系数矩阵进行使用,如poly([1 2 3])。

1、poly([1 2 3])的举例。

P=poly([1 2 3]) 可以解得P=[1 -6 11 -6],即求得的方程为:x^3-6x^2+11x-6=0。

2、poly([1 2 3;4 5 6;7 8 0])的举例。

P=poly([1 2 3;4 5 6;7 8 0]) 可以解得P=[1 -6 -72 -27],即方阵A的特征多项式为:λ^3-6λ^2-72λ-27=0。

扩展资料:

1、zeros

zeros(n):nn 全零矩阵。

zeros(m,n):mn全零矩阵。

zeros(d1,d2,d3dn):生成 d1d2d3dn 全零矩阵或数组。

zeros(size(A)):生成与矩阵A大小相同的全零矩阵。

2、ones

ones(n):nn 全1矩阵。

ones(m,n):mn全1矩阵。

ones(d1,d2,d3dn):生成 d1d2d3dn 全1矩阵或数组。

ones(size(A)):生成与矩阵A大小相同的全1矩阵。

3、size

size(A):对于矩阵A,函数size(A)返回一行向量。 

该行向量的第一个元素表示矩阵的行,第二个元素表示矩阵的列。

size(A, 1):表示获取矩阵A的行数。

size(A, 2):表示获取矩阵A的列数。

-poly

额。。。

你的毕业设计还真水。。。

zeros就是生成一个全0的矩阵

a = zeros(m,n)就可以了

在滤波器里怎么用就看你怎么设计了

你公式里要空矩阵让后往里填数据就先建一个全0的呗。

话说这全0的矩阵和滤波器本身根本就没什么关系,不过编程时可能要用到,你连自己要设计滤波器是什么原理都不知道。。。。

自己好好看看书吧这么基础的问题好意思上来问的。

看到你更新的内容了

第一个[1 zeros(1,6000) 04]是关于增益的时序,

即[1 0 0 00 0 0 04]表示在采样时刻1~60001的时间里面对信号的增益。

第二个[x' zeros(1,5000)]表示输入信号。

中间的1表示全部输入按时序叠加。

都是输入到filter函数的参数。

至于filter参数是什么意义,自己去看matlab的help就知道了。

matlab中实现交织编码没有直接函数,只会用一段程序来实现交织编码。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12186189.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存