Check each element in matrix is less than value
Ältere Kommentare anzeigen
i have two 20 by 20 matrix, T and Q.
i would like to check if each element of T and Q is less than, more than or equal to zero. For each combination there is a condition for Beta. For example, if it is found that T(1,1)>0 and Q(1,1)>0, Beta=-90 if it is found that T(1,2)<0 and Q(1,2)>0, Beta=90 and so on until T(20,20) and Q(20,20)
1 Kommentar
madhan ravi
am 6 Feb. 2019
Does this do what you want?
Beta = zeros(size(T));
id = T>0 & Q>0;
Beta(id) = -90;
id1 = T<0 & Q>0;
Beta(id1) = 90;
Antworten (2)
John D'Errico
am 6 Feb. 2019
Bearbeitet: John D'Errico
am 6 Feb. 2019
Learn to use MATLAB, as it is designed to be used. For example, you might just do this:
Beta = -90*sign(T).*sign(Q);
You don't say what happens if either of T or Q are zero, or what to do if they are both negative. But the above line computes Beta(i,j) all in advance, without requiring a complex set of if statements.
Oh, I usually tell people to avoid using names of variables that are too close to useful function names. Here, beta is a function in MATLAB. Since MATLAB is case sensitive in this respect, this is not a problem in theory, but it is something to watch out for.
Bob Thompson
am 6 Feb. 2019
Bearbeitet: Bob Thompson
am 6 Feb. 2019
0 Stimmen
i would like to check if each element
By 'check each element' do you actually need to go through each element in a loop, or would creating a beta array with appropriate values work?
Beta = nan(20,20);
Beta(T>0&Q>0) = -90;
Beta(T<0&Q>0) = 90;
... % Other possibilities
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!