Filter löschen
Filter löschen

If statement for matrix

2 Ansichten (letzte 30 Tage)
Sewwandhi Chandrasekara
Sewwandhi Chandrasekara am 4 Apr. 2022
Bearbeitet: DGM am 5 Apr. 2022
I have a matrix of 73 rows andd 12 columns having different values to each cell. I want to assign if cell value=0.5 display "0, else if cell value >=0.5 display "+1" else cell value<=0.5 display "-1". I tried following, but gives only one value.1,1 cell value is -0.5438.
if B==0.5;
disp='0';
elseif B>=0.5;
disp='+1';
else
disp='-1'
end

Antworten (1)

DGM
DGM am 5 Apr. 2022
Bearbeitet: DGM am 5 Apr. 2022
If you want to change array values, why are you using disp()?
This will produce the output of the same size:
A = rand(4,3); % a test array
A(1) = 0.5 % make sure at least one is exactly 0.5
A = 4×3
0.5000 0.4352 0.4317 0.2511 0.4596 0.8072 0.9170 0.0056 0.6738 0.1956 0.2177 0.4465
B = sign(A-0.5) % simple numeric output
B = 4×3
0 -1 -1 -1 -1 1 1 -1 1 -1 -1 -1
If for some reason, you want a bunch of text output:
cmap = {'-1','0','+1'};
Btext = cmap(sign(A-0.5)+2) % cellchar output
Btext = 4×3 cell array
{'0' } {'-1'} {'-1'} {'-1'} {'-1'} {'+1'} {'+1'} {'-1'} {'+1'} {'-1'} {'-1'} {'-1'}

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by