Error in following matlab code.
    3 次查看(过去 30 天)
  
       显示 更早的评论
    
Error in following codes
for i = 1:12
    if i == 12
        x1 = 9
    end    
    x1 = [1];
    x2 = [3];
    if i == 1
      x1 = 2
    else
    x1(i) = x1(i-1) - x2; 
    end
    x = [x1 x2]
end
When i run it it shows following error please help me to solve error.
Array indices must be positive integers or logical values. 
3 个评论
  Image Analyst
      
      
 2019-2-3
				Yes, but did Star's answer below solve your problem or not?  Did you even try it?
回答(1 个)
  Star Strider
      
      
 2019-1-26
        The error comes from your current calculation of ‘x1’ as: 
x1(i) = x1(i-1) - x2; 
In the first iteration,i=1 so (i-1)=0.  In MATLAB, indices are integers greater than 0, or logical values.  
I am not certain this ‘corrected’ version of your code creates the values for ‘x’ that you want.  However, it has the virtue of running without error: 
for i = 1:12
    if i == 12
        x1(i) = 9;
    end
    x1(i) = [1];
    x2 = [3];
    if i == 1
        x1(i) = 2;
    else
        x1(i+1) = x1(i) - x2;
    end
    x(i,:) = [x1(i) x2];
end
Experiment to get the result you want.  
0 个评论
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



