How to apply operation (< or >=) on cell array?

I have exported the excel sheet on MATLAB and now I want to apply condition on each cell.
Condition: If each value in cell is less tha 150 so the answer should be "0" else "1".
The cell array dimension is 44x4.
I want the outout in the same array form too.
MY CODE
clc;
clear all;
DATA = readcell('testing_Data.xlsx');
DATA_A = readcell('testing_Data.xlsx','Range','A1:A44')
DATA_B = readcell('testing_Data.xlsx','Range','B1:B44');
DATA_C = readcell('testing_Data.xlsx','Range','C1:C44');
DATA_G = readcell('testing_Data.xlsx','Range','D1:D44');
A_OUTPUT = DATA_A(find(~cellfun(@(x)any(x<150, 'all'), DATA_A)))
Using this above code the output result I am getting is 27x1 matrix.
A_OUTPUT is eleminating the cells that are less than 150, however instead of eliminating thoses cell, I want to replace "0" on their place. And for the cell who's value is greater than 150 should be replaced by "1".

回答 (1 件)

MJFcoNaN
MJFcoNaN 2022 年 4 月 6 日

0 投票

A little modified code may work:
ind_less = cellfun(@(x)any(x<150, 'all'), DATA_A);
A_OUTPUT = NaN(length(DATA_A), 1);
A_OUTPUT(ind_less)=0;
A_OUTPUT(~ind_less)=1;

2 件のコメント

Muhammad Hayyan Bin Shahid
Muhammad Hayyan Bin Shahid 2022 年 4 月 7 日
Thank you so much. It worked!!
CAn you also guide me how to represent the results as one array?
Like I want the coloumn A B C and G to be in 44x 4 cell array.
MJFcoNaN
MJFcoNaN 2022 年 4 月 7 日
Why is there a cell array? The A_OUTPUT is a numerical vector, isn't it?

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

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

コメント済み:

2022 年 4 月 7 日

Community Treasure Hunt

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

Start Hunting!

Translated by