Creating a new matrix from an existing one using logical operators?
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Write a script which defines a 100x100 matrix, X, of random integers between 5
and 50. From the matrix X, create a matrix, Y, in which all values greater than or
equal to 25 are the same as in X, but all values below 25 are changed to 0.
Here is what I have:
x=randi([5 50],100,100)
Y=randi([5 50],100,100)
if Y>25
disp(Y)
elseif Y<25
disp(0)
end
The matrix that I am getting in the out put is not correct. No numbers have been substituted with zero.
2 commentaires
the cyclist
le 20 Oct 2019
If you look at the documentation on the if function, you'll see that in the "Compare Arrays" section, it says
"Expressions that include relational operators on arrays, such as A > 0, are true only when every element in the result is nonzero."
So, your if statement is not testing each element and then giving a result for each element, as you seem to expect. It is testing the entire array, to see if it is true for all elements.
Réponses (1)
Voir également
Catégories
En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!