Matlab简单循环没有正确绘图

时间:2015-08-24 12:26:16

标签: matlab loops if-statement for-loop plot

我是一个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。

1 个答案:

答案 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