How to take number between two nested cell arrays

조회 수: 1 (최근 30일)
Ahmad Bayhaqi
Ahmad Bayhaqi 2021년 7월 6일
댓글: Chunru 2021년 7월 6일
Hi,
I have two nested cell arrays
A = {[27,28,30,31]},{[26,25,30]},{[33,29,31,27,28]};
B = {[30,64,72,85]},{[15,33,62]},{[45,62,77,84,90]};
How can I take a max value of all entry nested in A and pick a value in B which corresponds to the max value of A?
so the result will be:
C = 33
D = 45
Thank you

답변 (2개)

KSSV
KSSV 2021년 7월 6일
A = {[27,28,30,31],[26,25,30],[33,29,31,27,28]};
B = {[30,64,72,85],[15,33,62],[45,62,77,84,90]};
A = cell2mat(A) ;
B = cell2mat(B) ;
[val,idx] = max(A) ;
iwant = B(idx)
  댓글 수: 2
Ahmad Bayhaqi
Ahmad Bayhaqi 2021년 7월 6일
I am afraid that cell2mat doesnt work for cell.
because in A and B, I have three nested cell
A = {[27,28,30,31]},{[26,25,30]},{[33,29,31,27,28]};
B = {[30,64,72,85]},{[15,33,62]},{[45,62,77,84,90]};
so, I got this error below;
"cell2mat does not support cell arrays containing cell arrays or objects".
KSSV
KSSV 2021년 7월 6일
Wy you want to put extra cell braces in there?

댓글을 달려면 로그인하십시오.


Chunru
Chunru 2021년 7월 6일
You can do the following (the code you gave above is NOT a nested cell):
A = {{[27,28,30,31]},{[26,25,30]},{[33,29,31,27,28]}};
B = {{[30,64,72,85]},{[15,33,62]},{[45,62,77,84,90]}};
A1= []; B1=[];
for i=1:length(A)
A1 = [A1 A{i}{1}];
B1 = [B1 B{i}{1}];
end
[C, id] = max(A1)
C = 33
id = 8
D = B1(id)
D = 45
  댓글 수: 6
Ahmad Bayhaqi
Ahmad Bayhaqi 2021년 7월 6일
I am sorry for being too much asking, but still got an error message when use that line of code.
why it's said
"Cell contents reference from a non-cell array object"
Chunru
Chunru 2021년 7월 6일
Your data is in a mixed format. Some elements are cells and some are arrays. Some are row vector and some are column vector. This cause the problem.
The following take care of these problems:
load('A', 'A');
load('B', 'B');
A1= []; B1=[];
for i=1:length(A)
if iscell(A{i})
A1 = [A1; A{i}{1}(:)];
B1 = [B1; B{i}{1}(:)];
else
A1 = [A1; A{i}(:)];
B1 = [B1; B{i}(:)];
end
end
[C, id] = max(A1)
D = B1(id)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by