If statement for matrix

2 次查看(过去 30 天)
Sewwandhi Chandrasekara
编辑: DGM 2022-4-5
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

回答(1 个)

DGM
DGM 2022-4-5
编辑:DGM 2022-4-5
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'}

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by