Specific conditions for array elements

1 vue (au cours des 30 derniers jours)
Al Ne
Al Ne le 22 Août 2021
Commenté : Al Ne le 22 Août 2021
Hello! Let's say that i have an array 5x5 filled with numbers from 1 to 20
A=randi(20,5);
How can i compute a new array B of the same size as the A with three conditions:
1. If the element of the array A is smaller than 10, B=9^2
2. If the element of the array A is equal to 10, B=0
3. If the element of the array A is higher than 10, B=20^0.5
Thank you,
Alex

Réponse acceptée

Awais Saeed
Awais Saeed le 22 Août 2021
Modifié(e) : Awais Saeed le 22 Août 2021
Fairly simple
clc;clear;close
A=randi(20,5);
B = A;
% get indices
B1 = find(B == 10);
B2 = find(B > 10);
B3 = find(B < 10);
% change values at those indices
B(B1) = 0;
B(B2) = 20^0.5;
B(B3) = 9^2;
  3 commentaires
Awais Saeed
Awais Saeed le 22 Août 2021
You are welcome.
C = rand(5)
% get indices where B = 81
C1 = find(B == 81);
% change values at those indices to zero
C(C1) = 0
Al Ne
Al Ne le 22 Août 2021
Thank you! You greatly helped me!

Connectez-vous pour commenter.

Plus de réponses (1)

Simon Chan
Simon Chan le 22 Août 2021
You may simply combine them together as follows:
B = (A>10)*(9^2)+(A==10)*0+(A<10)*(20^0.5);
  1 commentaire
Al Ne
Al Ne le 22 Août 2021
Dear Simon Chan,
Thanks for your response!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices 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!

Translated by