我是一个Matlab新手,我试图弄清楚为什么我的简单循环不会像它应该做的那样。
更新的代码(从8/25以下的评论中移除)
rent_1=1400;
rent_2=1560;
b = zeros(1,10);
month_count = 1:10
y = month_count * rent_1;
for i = 1:10
if i == 1 | i == 2 | i == 3
b(1,i)=rent_2 * (i-0.5040);
elseif i == 4
b(1,i)=rent_2*(i-0.6300);
elseif i == 5
b(1,i)=rent_2*(i-0.7565);
elseif i == 6
b(1,i)=rent_2*(i-0.8825);
elseif i == 7
b(1,i)=rent_2*(i-1.0085);
elseif i == 8
b(1,i)=rent_2*(i-1.1345);
else
b(1,i)=rent_2*(i-1.2605);
end
end
figure,
plot(month_count,y,i,b(1,i))
原始代码(已发布8/24):
rent_1=1400;
rent_2=1560;
b = zeros(1,10);
month_count = 1:10
y = month_count * rent_1;
if i=1:3
for 1:3,
b(1,i)=rent_2(i-0.5040);
end
elseif i == 4
b(1,i)=rent_2(i-0.6300);
elseif i == 5
b(1,i)=rent_2(i-0.7565);
elseif i == 6
b(1,i)=rent_2(i-0.8825);
elseif i == 7
b(1,i)=rent_2(i-1.0085);
elseif i == 8
b(1,i)=rent_2(i-1.1345);
else
b(1,i)=rent_2(i-1.2605);
end
figure,
plot(month_count,y,i,b(1,i))
非常感谢您的反馈。 Max Keizer。
答案 0 :(得分:0)
绝对没有理由在这里搞乱循环和if语句。
就像你这样做:
b
您可以将rent_2
作为m = [0.504 0.504 0.504 0.63 0.7565]; % values from your loop/ifs
d = 1:5 - m; %months minus the discount values
rent = rent_2.*d;
乘以修饰符向量。简化示例 - 如果这些数字是通过其他方程式计算的,那么最好使用这些数字而不是手动输入,但无论如何:
prepare-agent