matlab swtchcase求助 很急很急很急很急 标题要长!!!!!!!!!!!!!

最后的轮回   2010-6-5 08:58 楼主
a=[0 1 2 3 4 5];
j=1,k=1,l=1;
for i=0:5
    switch mod(i,3)
        case 1
            b(j)=a(i);
            j=j+1;
        case 2
            c(k)=a(i);
            k=k+1;
        otherwise
            d(l)=a(i);
            l=l+1;
    end
end
b
c
d
subplot(2,1,1),plot(b,c)
subplot(2,1,2),plot(b,d)


我基本的意思是这样的,数组a中的数对3取余数,余数为0的放到数组b中,余数为1的放到数组c中,余数为2的放到d中,
本人没有学过matlab ,因为毕业设计要用,但也不太难,就差这个了,麻烦各位好心人了!!!!!!

回复评论 (5)

a=[0 1 2 3 4 5];
j=1,k=1;
for i=0:5
    switch mod(i,3)
        case 1
            b(j)=a(i);
            j=j+1;
        case 2
            c(k)=a(i);
            k=k+1;
        otherwise
           
    end
end
b
c
subplot(2,1,1),plot(b,c)


但是如果改成这个程序却能正常运行,不知道原因在哪里!!!
点赞  2010-6-5 09:01
引用: 原帖由 最后的轮回 于 2010-6-5 08:58 发表
a=[0 1 2 3 4 5];
j=1,k=1,l=1;
for i=0:5
    switch mod(i,3)
        case 1
            b(j)=a(i);
            j=j+1;
        case 2
            c(k)=a(i);
            k=k+1;
        otherwis ...


MATLAB中,数组的下标是从1开始的,不是从零开始,for i=1:6。
数组a中的数对3取余数的话,应该是 mod(a(i),3)。
还有,plot(b,d),这个命令要求b和d有相同的维数,不然会报错,如果a阵的数值变化,导致plot中的矩阵维数不一样,会报错的。

楼主检查一下,看看行不行。
点赞  2010-6-5 09:17
第一个程序的otherwise对a(0)操作,会报错,第二个a(0)刚好跳过了(otherwise为空),所以不会报错。
点赞  2010-6-5 09:20
%我基本的意思是这样的,数组a中的数对3取余数,余数为0的放到数组b中,余数为1的放到数组c中,余数为2的放到d中,
%本人没有学过matlab ,因为毕业设计要用,但也不太难,就差这个了,麻烦各位好心人了!!!!!!
clc%clear command window
clear%clear variables
clf%clear figures
close all%close all figures
format compact%set compact format for command display
a=[0 1 2 3 4 5 12 13 14 15 17 23 5 8 4 3];
looptimes = length(a)%figure times to loop
j = 1;k = 1;l = 1;
for i = 1:looptimes
    switch mod(a(i),3)
        case 1
            b(j) = a(i);
            j = j + 1;
        case 2
            c(k) = a(i);
            k = k + 1;
        otherwise
            d(l) = a(i);
            l = l + 1;
    end
end
b
c
d
subplot(3,1,1),plot(b,'^');
ylabel('b');
subplot(3,1,2),plot(c,'*');
ylabel('c');
subplot(3,1,3),plot(d,'x');
ylabel('d');
点赞  2010-6-5 09:45
十分感谢
点赞  2010-6-5 09:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复