Not overwriting array in if-elseif loop
Mostra commenti meno recenti
Hi,
I have the following code
for k = 1:length(yarray)-1
if yarray(k+1) <= A & yarray(k) >= A
M = [yarray(k) yarray(k+1) k k+1]
elseif yarray(k+1) >= A & yarray(k) <= A
M = [yarray(k) yarray(k+1) k k+1]
end
end
Where yarray is an array of y values in a plot, and A is the y value that I want to find corresponding x values to. I am expecting the if and elseif conditions to be satisfied 4 times, resulting in 4 M arrays. However, each time this is satisfied, M is overwritten. How can I come up with 4 different arrays which I can recall later?Let me know if this needs more clarification. Thanks!
Risposta accettata
Più risposte (1)
Jan
il 23 Lug 2011
y_le_A = (yarray <= A);
y_ge_A = (yarray >= A);
index = or(and(y_le_A(2:end), y_ge_A(1:end-1)), ...
and(y_ge_A(2:end), y_le_A(1:end-1)));
k = find(index);
M = transpose([yarray(k); yarray(k+1); k; k+1]);
The last line needs yarray to be a row vector.
I have the impression, that this can be simplified using a DIFF trick.
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!