MATLAB矩阵方面,结果不对,帮忙看下

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:25:41
p=[ 0.0065 0.0080 0.0097 0.0177];
lb=[0.5 0.2 0.15 0.1];
ub=[2 0.8 0.5 0.35];
for i=1:4
if lb(i)<=p(i);
p(i)==p(i);
else p(i)==lb(i);
if ub(i)>=p(i);
p(i)==p(i);
else p(i)=ub(i);
end
end
end
p
目的:lb<=p<=ub

首先,循环嵌套错了,应当对上下限分别比较,你是把上限的比较放在下限比较的if-else-end里面了

其次,你把赋值符号=和逻辑判断等于符号==弄混了
for i=1:4
if lb(i)<=p(i);
p(i)=p(i);
else p(i)=lb(i); end
if ub(i)>=p(i);
p(i)=p(i);
else p(i)=ub(i);
end
end
p

p =

0.5000 0.2000 0.1500 0.1000

有输出啊:
>> p=[ 0.0065 0.0080 0.0097 0.0177];
lb=[0.5 0.2 0.15 0.1];
ub=[2 0.8 0.5 0.35];
for i=1:4
if lb(i)<=p(i);
p(i)==p(i);
else p(i)==lb(i);
if ub(i)>=p(i);
p(i)==p(i);
else p(i)=ub(i);
end
end
end
p

p =

0.0065 0.0080 0.0097 0.0177

>>