Specific conditions for array elements

2 ビュー (過去 30 日間)
Alexander Nee
Alexander Nee 2021 年 8 月 22 日
コメント済み: Alexander Nee 2021 年 8 月 22 日
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

採用された回答

Awais Saeed
Awais Saeed 2021 年 8 月 22 日
編集済み: Awais Saeed 2021 年 8 月 22 日
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 件のコメント
Awais Saeed
Awais Saeed 2021 年 8 月 22 日
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
Alexander Nee
Alexander Nee 2021 年 8 月 22 日
Thank you! You greatly helped me!

サインインしてコメントする。

その他の回答 (1 件)

Simon Chan
Simon Chan 2021 年 8 月 22 日
You may simply combine them together as follows:
B = (A>10)*(9^2)+(A==10)*0+(A<10)*(20^0.5);
  1 件のコメント
Alexander Nee
Alexander Nee 2021 年 8 月 22 日
Dear Simon Chan,
Thanks for your response!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeElementary Math についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by