Hi Friends,
I have a cell array matrix with C= 1*22. I want to apply a thresold to the cell array, all values less than (0.2) must be set to zero (0). The output dimention must be the same dimention of input cell array (1*22).
1- i have converted the cell to double
2- Applied the threshold
3- convert back the double to cell
I have applied this code, but could not got a cell with (1*22).
X=str2double(C); % converted the cell to double
X(X <0.2)=0; % Applied the threshold
C = num2cell(X); % convert back the double to cell

2 件のコメント

Matt J
Matt J 2021 年 2 月 3 日
Works fine for me:
C=cellstr( rand(1,22)+"" );%Fake
X=str2double(C); % converted the cell to double
X(X <0.2)=0; % Applied the threshold
C = num2cell(X); % convert back the double to cell
whos C
Name Size Bytes Class Attributes C 1x22 2464 cell
Abdulhakim Alezzi
Abdulhakim Alezzi 2021 年 2 月 3 日
Hi Matt,
The issue here in my matrix that i have inside the cell 22 matrices (each matrix inside every colomn in the cell is 30*30*20) as shown in the attached picture.

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

 採用された回答

Steve Eddins
Steve Eddins 2021 年 2 月 3 日

1 投票

I think writing a for-loop would be most straightforward way to go. Something like this:
for k = 1:numel(C)
C_k = C{k};
C_k(C_k < 0.2) = 0;
C{k} = C_k;
end

1 件のコメント

Abdulhakim Alezzi
Abdulhakim Alezzi 2021 年 2 月 3 日
Dear Mr. Steve Eddins,
Thank you very much, It is really helping.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索

製品

リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by