4161|5

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

matlab swtchcase求助 很急很急很急很急 标题要长!!!!!!!!!!!!! [复制链接]

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 ,因为毕业设计要用,但也不太难,就差这个了,麻烦各位好心人了!!!!!!

最新回复

%我基本的意思是这样的,数组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
 
点赞 关注

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
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)


但是如果改成这个程序却能正常运行,不知道原因在哪里!!!
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

板凳
 
原帖由 最后的轮回 于 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中的矩阵维数不一样,会报错的。

楼主检查一下,看看行不行。
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

4
 
第一个程序的otherwise对a(0)操作,会报错,第二个a(0)刚好跳过了(otherwise为空),所以不会报错。
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

5
 
%我基本的意思是这样的,数组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');

赞赏

1

查看全部赞赏

 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 
十分感谢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表