菜鸟求助~~~MATLAB~~~急哭了555

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:42:08
我定义了一个1*N的矩阵x(n),然后我又定义了一个空矩阵cr3_1,用来存放符合条件的元素:
cr3_1=[ ];
for n=2:N-1
if (x(n-1)<x(n) && x(n)>x(n+1) || x(n-1)>x(n) && x(n)<x(n+1))
cr3_1=[cr3_1,' ',num2str(n)];
end
end

大家看看,我这样定义运行完后cr3_1含有很多符合条件的n值,例如cr3_1=[1 2 10 15 97];
它有两个缺点:
1.每个元素的调用都是偶数的,即cr3_1(1,2)=1, cr3_1(1,4)=2,而cr3_1(1,1)和cr3_1(1,3)都是空格等等
2.当调用cr3_1(1,6)时,结果不是10,而是1,cr3_1(1,7)=0,然后cr3_1(1,8)又是空格。好家伙,感情把10给我分开储存了,后边的两个数15,97,也是这种情况

高手们,我是菜鸟,刚刚学,老师就让我做点东西了,恳请高手指教指教,错在哪?该如何改?
本人多多加分,看在我一片赤诚之心,帮帮忙~~~

因为用num2str命令输出的元素是char格式的,所以生成的矩阵中元素都是单个的字符,如果没有特殊需要你不要用num2str命令,直接给每个元素赋值就好了,当然也不用中间的空格

看了下:
能不能多加一个k,初始k=1,然后
cr3_1=[cr3_1,' ',num2str(n)]
改成
cr3_1(k)=n;
k=k+1;
试下?

使用CELL定义数组即可

看不懂你要干什么,好像错得很利害啊,你想做什么?