Get back variables out of function inside a for loop
1 view (last 30 days)
Show older comments
Hello everyone,
I have extracted the values stored in 2 different matrices and used them in order to create a line (plot). One point is always the same (I1,M1) where I1 is the x coordinate and M1 is the Y.
inside J and WZ matrices, I have, let's say, 3 values each (but they could be more or less) and I have used them in order to create 3 different lines with one point constant (I1, M1) while the others change. PLease note that, I have added 2500 to all the values stored inside WZ.
Running the for loop, ends up in having created a slope matrix, with 3 values inside, which reprenset 3 different slopes. I have found the minimun value among them (-0.0168), and now, I would like to getting back from that value (the minimum), and to call back the corresponding WZ and J values associated
J = [2.5 27 56];
WZ = [12.2 23.2 33];
M1 = 22
I1 = 2600
for ii = 1:numel(WZ)
slope(ii) = (J(ii)-M1)/(WZ(ii)+3750-I1);
slope_1 = min(slope);
end
disp(slope_1)
2 Comments
Stephen23
on 9 Dec 2022
J = [2.5,27,56];
WZ = [12.2,23.2,33];
M1 = 22;
I1 = 2600;
slope = (J-M1)./(WZ+3750-I1);
[slope_1,idx] = min(slope);
WZ_1 = WZ(idx)
J_1 = J(idx)
Accepted Answer
Alan Stevens
on 9 Dec 2022
Here's one way
J = [2.5 27 56];
WZ = [12.2 23.2 33];
M1 = 22;
I1 = 2600;
for ii = 1:numel(WZ)
slope(ii) = (J(ii)-M1)/(WZ(ii)+3750-I1);
slope_1 = min(slope);
end
disp(slope_1)
indx = find(slope==slope_1)
WZ_1 = WZ(indx)
J_1 = J(indx)
2 Comments
Stephen23
on 9 Dec 2022
Using the second output from MIN() is simpler than calling superfluous FIND().
More Answers (1)
Dyuman Joshi
on 9 Dec 2022
J = [2.5 27 56];
WZ = [12.2 23.2 33];
M1 = 22;
I1 = 2600;
slope=(J-M1)./(WZ+3750-I1)
[minval,minid]=min(slope)
Jval=J(minid)
WZval=WZ(minid)
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!