【发布时间】:2016-08-12 22:05:21
【问题描述】:
f1=@(x) x-2;
f2=@(x) x;
f3=@(x) x+2;
for i=1:3
if fi(0)<0
f2(3)
else
f3(3)
end
end
预期的答案是 3,5,5,但是当我在 matlab 中运行代码时,我得到 5,5,5
【问题讨论】:
-
我认为您的意思是在某处使用
i。并且fi没有定义。 -
fi(0)<0,这个条件是假的并且不依赖于循环的迭代。 fi(0)返回0,条件0<0为假 -
您可能希望将
if fi(0)<0更改为:if f1(i)<0 -
@Sardar_Usama
fi是什么? (我的意思是,它甚至没有定义,为什么 fi(0) 返回 0?你是怎么得到的?) -
你知道,这就是我喜欢 stackoverflow 的地方。出于一个愚蠢的问题(没有冒犯,OP :p)可以得出这样的拖延宝石。现在我正在阅读嵌入式处理器中的定点算术! xD
标签: matlab if-statement for-loop