matlab的if语句,要求满足多个条件中的一个,也就是说彼此是或的关系,怎么写?

其中abc是已有数据,希望满足当a为2或3或4或5的时候,输出此时对应的bc图像。但程序在if a(i)==2||a(i)==3||a(i)==4||a(i)==5这里报错。请问应该怎么改?

for i=1:10000
if a(i)==2||a(i)==3||a(i)==4||a(i)==5
plot (c(i),d(i),'c-o','linewidth',2,'markersize',4);
hold on;
else
i=i+1;
end
end
谢谢两位。测试后发现报错对图像结果没有任何影响。但为什么会报错呢???奇怪啊。完整程序太长贴不上来。发现还在一个for循环里也报错但对结果也没有影响。。。真奇怪。。。
x1=[300,360,480,645,1020,1305,1575];
y1=[0,6,20,31,42,50,96];
x2=[945,945,945,1725,1725,1725,1725,];
y2=[0,20,30,80,85,90,100];
for i=1:10
a=[x1(i),x2(i)];
b=[y1(i),y2(i)];
plot(a,b,'k--o','linewidth',2,'markersize',4);
hold on;
end
最新回答
浪徒

2024-09-18 03:56:20

你的a是什么类型的数据.
报错的信息是什么.
语法是没有错的.

你上面的for是从i=1:10
而出错的是i=8
由于你的x1,y1的长度只有7个,你访问第8个元素就出错了.
但是前七个的图还在.
所以你感觉是正常的.但是有点不正常就是了.
干凈没朋友

2024-09-18 05:11:22

if a(i)==2||a(i)==3||a(i)==4||a(i)==5
表示或关系的话这句话是没有问题的
你看看是不是别的地方定义或者参数什么的设置的不对,或者你把错误代码贴出来看看