Filter löschen
Filter löschen

Error in following matlab code.

2 Ansichten (letzte 30 Tage)
Usman Taya
Usman Taya am 26 Jan. 2019
Kommentiert: Image Analyst am 3 Feb. 2019
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 Kommentare
Usman Taya
Usman Taya am 26 Jan. 2019
I want 12 values of x1 and x2 where current x1 from i = 2 to 12 will calculate using x1(i) = x(i-1) -x2.
Image Analyst
Image Analyst am 3 Feb. 2019
Yes, but did Star's answer below solve your problem or not? Did you even try it?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Star Strider
Star Strider am 26 Jan. 2019
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.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by