Calling in a function inside a for loop and storing each answer separetly

1 Ansicht (letzte 30 Tage)
Hello, this is my code so far. My function outputs the number of iterations needed to solve a system, and I want to use this script to output the number of iterations but with varying a parameter as shown:
A = [-10 4 1 0; 4 -10 0 1; 1 0 -10 4; 0 1 4 -10];
B = [-200;-80;-300;-180];
n = 4;
x = [0;0;0;0];
imax = 1000;
es = 1e-6;
w= 1.2;
for w=0.1: 0.1: 1.9
engr3202_gsrelax(A,B,n,x,imax,es, w);
end
I keep getting large numbers of iterations so i'm not sure if the code is just adding them all together, but i basically want 19 outputs separately so i can plot a graph with it.
Thanks a lot!

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 2 Nov. 2019
Bearbeitet: Walter Roberson am 2 Nov. 2019
A = [-10 4 1 0; 4 -10 0 1; 1 0 -10 4; 0 1 4 -10];
B = [-200;-80;-300;-180];
n = 4;
x = [0;0;0;0];
imax = 1000;
es = 1e-6;
wvals = 0.1: 0.1: 1.9;
for widx = 1 : length(wvals)
w = wvals(widx);
gs(widx,:) = engr3202_gsrelax(A,B,n,x,imax,es, w);
end
plot(wvals, gs)
  3 Kommentare
Walter Roberson
Walter Roberson am 2 Nov. 2019
We do not know the size of your output for each call. Using the colon allows for the possibility that you return a vector for each call.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Bhaskar R
Bhaskar R am 2 Nov. 2019
Bearbeitet: Bhaskar R am 2 Nov. 2019
You have not provided the output varibles of the function engr3202_gsrelax(A,B,n,x,imax,es, w);
Make output variables in the calling, I assume only one variable here, say output and intialize with length of w
A = [-10 4 1 0; 4 -10 0 1; 1 0 -10 4; 0 1 4 -10];
B = [-200;-80;-300;-180];
n = 4;
x = [0;0;0;0];
imax = 1000;
es = 1e-6;
w= 1.2;
w=0.1: 0.1: 1.9;
output = zeros(1, length(w));
for iw=0.1: 0.1: 1.9
output(:, iw) = engr3202_gsrelax(A,B,n,x,imax,es, iw);
end
You can get the data in the variable output for all your loop iterations(19 in our case)
  4 Kommentare
Nadine Nassar
Nadine Nassar am 2 Nov. 2019
output(:, iw) = engr3202_gsrelax(A,B,n,x,imax,es, iw);
Could you explain the colon here?
Thank you
Nadine Nassar
Nadine Nassar am 2 Nov. 2019
Never mind, I understand now.
Thanks a lot for your help!

Melden Sie sich an, um zu kommentieren.

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