matlAB报错"Vectors mustbe be the same lengths."怎么解决?

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
matlab 的应用
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
关于MATLAB中分段函数的画法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口matlab Vectors must be the same lengths 出错,求高手。。_百度知道
matlab Vectors must be the same lengths 出错,求高手。。
这是我写的程序。压根没学过信号系统和matlab,老师却让用matlab写课程设计。&&k=0:299;%待分析点数为300个&&Fm=30;Fc=200;Fs=1000;%被调信号频率30Hz,载波信号频率200Hz,抽样频率1...
这是我写的程序。压根没学过信号系统和matlab,老师却让用matlab写课程设计。&& k=0:299;
%待分析点数为300个&& Fm=30;Fc=200;Fs=1000;
%被调信号频率30Hz,载波信号频率200Hz,抽样频率1000Hz&& t=k/Fs;
%设置步长&& x=sin(5*pi*Fm*t);
%设置被调函数,初相为0&& y=modulate(x,Fc,Fs,'amssb');
%利用modulate函数对载波进行单边但幅度调制&& X=fft(x,256);&& Y=fft(y,256);
%利用快速傅里叶变换求被调函数和已调函数频谱
&& x2=demod(y,Fc,Fs,'amssb');
%利用demod函数对已调信号进解调&& X2=fft(x2,256);
%利用快速傅里叶变换求解调函数频谱&& subplot(3,2,1);plot(x);xlabel('t(s)');ylabel('x');title('被调信号');&& subplot(3,2,2);plot(x);plot([-128:127],fftshift(abs(x)));
%绘制被调信号及其频谱图去到最后一步就弹出 Error using ==& plot Vectors must be the same lengths.求高手解答。。
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:149
获赞数:1493
参与团队:
频谱搬移fftshift的对象应该是x信号的傅里叶变换X才对,你写成小写的x了。x长度为300,X长度为256。改成我的这句即可:plot([-128:127],fftshift(abs(X)));画出来的是信号x的频谱幅度图,可以识别出30Hz的频率。图就不贴了,楼主给分。
孙继刚1206
孙继刚1206
采纳数:57
获赞数:131
擅长:暂未定制
%待分析点数为300个Fm=30;Fc=200;Fs=1000;
%被调信号频率30Hz,载波信号频率200Hz,抽样频率1000Hz t=k/Fs;
%设置步长 x=sin(5*pi*Fm*t);
%设置被调函数,初相为0 y=modulate(x,Fc,Fs,'amssb');
%利用modulate函数对载波进行单边但幅度调制 X=fft(x,256); Y=fft(y,256);
%利用快速傅里叶变换求被调函数和已调函数频谱
x2=demod(y,Fc,Fs,'amssb');
%利用demod函数对已调信号进解调 X2=fft(x2,256);
%利用快速傅里叶变换求解调函数频谱 subplot(3,2,1);plot(x);xlabel('t(s)');ylabel('x');title('被调信号');subplot(3,2,2);plot([0:299],fftshift(abs(x)));
%绘制被调信号及其频谱图好了
擅长:暂未定制
&& y=modulate(x,Fc,Fs,'amssb');
%利用modulate函数对载波进行单边但幅度调制&& X=fft(x,256);&& Y=fft(y,256);
%利用快速傅里叶变换求被调函数和已调函数频谱
&& x2=demod(y,Fc,Fs,'amssb');
%利用demod函数对已调信号进解调&& X2=fft(x2,256);
%利用快速傅里叶变换求解调函数频谱&& subplot(3,2,1);plot(x);xlabel('t(s)');ylabel('x');title('被调信号');&& subplot(3,2,2);plot(x);plot([-128:127],fftshift(abs(x)));
%绘制被调信号及其频谱图
chmimyshen
chmimyshen
擅长:暂未定制
错误好像是说,plot函数在作图是矢量的长度不一样。建议,将subplot(3,2,2);plot(x);plot([-128:127],fftshift(abs(x))); 中的x改为X,这才是fft变换后得信号,长度是256.
一个凡人1991
一个凡人1991
擅长:暂未定制
最后一行的fftshift(abs(x)长度为300,而[-128:127]只有256,要将两者调成一致。例如将[-128:127]改为[-150,149]。
其他2条回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。学习matlab的一点心得体会_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
学习matlab的一点心得体会
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩3页未读,
定制HR最喜欢的简历
你可能喜欢当前位置:
&matlab在运行如下代码的时候出现Vectors must be the same lengths错误报告
matlab在运行如下代码的时候出现Vectors must be the same lengths错误报告
作者 jack小闵
data=xlsread('climate.xls');& &%引用外部气象数据
x=data(:,1); %第几天
jw=data(:,2);%均温
sd=0.65;%湿度
yfjc(1)=686;%易分解组分量
nfjc(1)=1291; %难分解组分量
yjc (1)=18840;%土壤有机碳库
Rz=1.2;%土壤容重
nl=0.55;%土壤粘粒含量
Kl=0.025;%易分解组分分解速率
Kr=0.0008;%难分解组分分解速率
Ks=0.000065;%有机碳库分解速率
fs=1-0.26*%土壤质地校正系数
for i=1:1:114
x(i)=data(i,1);
jw(i)=data(i,2);
dw(i)=jw(i)*0.76+4.4;
Q10=(3.36+0.34*x(i))/(1+0.29*x(i));
ft(i)=Q10*exp((dw(i)-10)/10);%温度修正系数
fw(i)=0.49*exp(3.88*sd-5.40*sd^2);%水分修正系数
yfjc(i+1)= yfjc(i)*exp(-Kl*ft(i)*fw(i)*fs);%t+1时刻易分解有机碳残留量
dyfjc (i)= yfjc(i)*(Kl*ft(i)*fw(i)*fs);%t时刻易分解有机碳日分解量
yfjl(i)=nfjc (i)/yfjc(1);%t时刻易分解有机碳分解率
nfjc(i+1)= nfjc(i)*exp(-Kr*ft(i)*fw(i)*fs);%t+1时刻难分解有机碳残留量
dnfjc (i)= nfjc(i) *(Kr*ft(i)*fw(i)*fs);%t时刻难分解有机碳日分解量
nnfjc (i)= nfjc(1)- nfjc(i);%t时刻难分解有机碳累计分解量
nfjl(i)=nnfjc (i)/nfjc(1);%t时刻难分解有机碳分解率
yjc(i+1)= yjc(i)*exp(-Ks*ft(i)*fw(i)*fs);%t+1时刻土壤有机碳残留量
dyjc(i)= yjc(i) *(Ks*ft(i)*fw(i)*fs);%t时刻土壤有机碳日分解量
nyjc(i)= yjc(1)- yjc(i);%t时刻土壤有机碳累计分解量
yjcl(i)=nyjc(i)/yjc(1);%t时刻难分解有机碳分解率
plot(x,dyfjc,'^',x,dnfjc,'square',x,dyjc,'.')
plot(x,nyfjc,'^',x,nnfjc,'&',x,nyjc,'.')
plot(x,yfjl,'^',x,nfjl,'square',x,yjcl,'.')
估计是你进行运算过程中,向量的维数不匹配;根据matlab的出错提示,找到哪一行出错了,就应该可以判断是哪个向量出问题了。
最好你能说说是哪一行报的这个错
运算过程中,向量的维数不匹配,
这个很常见
引用回帖:: Originally posted by leimiao_hit at
运算过程中,向量的维数不匹配,
这个很常见 那请问下具体的解决办法是什么呢
引用回帖:: Originally posted by shefferine at
最好你能说说是哪一行报的这个错 最后三行都有错误
i=i+1这一行是不是应该删除?
楼上正确,i=i+1应该去掉!
在matlab里面,一个for i=1:1:114 已经够了,就会按照i从1增量为1到114为止的循环去做。
另外,你程序中的
等声明一个空数组,出现在每次循环中,这样每次就会把前次运行结果删掉。应该在循环外声明。
看Matlab的workspace窗口中的变量性质,看它们和你想要达到的样子是否一样,这样很方便
另外,注意,在Matlab中,是可以用一行语句完成一个数组操作的,比如A=2*B,则A的每个元素都是B中对应元素的2倍;C=A./B,则是C是A与B中对应元素之差。你的程序可以根据上述提示进一步改进。
希望对你有用,
24小时热帖
下载小木虫APP
与700万科研达人随时交流matlab 提示错误是:Error using ==& plot Vectors must be the same lengths.请问怎么解决,代码如下_百度知道
matlab 提示错误是:Error using ==& plot Vectors must be the same lengths.请问怎么解决,代码如下
就是一个分段函数画图的问题(菜鸟一个,希望能有比较简单的解决方法,尽量别用太高端的函数)y=[];x=-6:0.1:6;forx0=xif(x0&0&x0~=-3)y=[y,x0.^2+x0-6];endif(x0&=0&x0&5&x0~=2&x0~=...
就是一个分段函数画图的问题(菜鸟一个,希望能有比较简单的解决方法,尽量别用太高端的函数)y=[];x=-6:0.1:6;for x0=xif(x0&0&x0~=-3)
y=[y,x0.^2+x0-6] ;endif(x0&=0&x0&5&x0~=2&x0~=3)
y=[y,x0.^2-x0*5+6];else
y=[y,x0.^2-x0-1];endendx=-6:0.1:6;
plot(x,y,'r')
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:42
获赞数:129
y=[];x=-6:0.1:6;for t=1 to size(x)+1if(x(t)&0&x(t)~=-3)
y(t)=x(t).^2+x(t)-6;endif(x(t)&=0&x(t)&5&x(t)~=2&x(t)~=3)
y(t)=x(t)^2-x(t)*5+6;else
y(t)=x(t)^2-x(t)-1;endend
plot(x,y,'r')
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 mustbe是什么意思 的文章

 

随机推荐