Multi Dimensional Cell Array

Asked by xplore29 about 13 hours ago
Latest activity Commented on by Azzi Abdelmalek about 10 hours ago

Can we create a single multi-dimensional cell array of variable size dimensions.

I have matrices (all of same dimensions) A1,A2,A3,A4 AA1,AA2,AA3,AA4,BB1,BB2,BB3,BB4

I was wondering if whether I can store these matrices like

cellarray{1,1,1}=A1 cellarray{1,2,1}=A2......cellarray{1,4,1}=A4

cellarray{1,1,2}=AA1 cellarray{1,2,2}=AA2......cellarray{1,4,2}=AA4

cellarray{2,1,2}=BB1 cellarray{2,2,2}=BB2......cellarray{2,4,2}=BB4

I understand that cells are good for storing data of variable dimensions but for this problem its the dimensions which are variable instead of data itself

1 Comment

Jan Simon about 11 hours ago

I do not understand the question. You have posted the code required to create cellarray already. This implies, that the answer is:

 Yes, obviously it is possible that you can store the matrices as you have shown.

I assume, you want something more general.

xplore29

Products

No products are associated with this question.

2 Answers

Answer by Azzi Abdelmalek about 13 hours ago
cellarray={A1,A2,A3,A4,AA1,AA2,AA3,AA4,BB1,BB2,BB3,BB4}

2 Comments

Jan Simon about 11 hours ago

The question contains the detail, that e.g. BB4 should be found at the index [1,2,1]. Does your answer address this? If not, are there any reasons to omit this?

Azzi Abdelmalek about 10 hours ago

I think this is the simple way to store those matrices, maybe we have to store also their names:

cellarray_names={'A1','A2',...}. 

I do not know exactly what are the OP intentions. I was hoping he comments my answer

Azzi Abdelmalek
Answer by Babak about 13 hours ago
 maxsize1 = 100;
 maxsize2 = 100;
 maxsize3 = 100;
 mycell = cell(maxsize1 ,maxsize2 ,maxsize3 );
 mycell{1,1,1} = A1;
 mycell{1,2,1} = A2;
 mycell{1,4,1} = A4;
 mycell{1,1,2} = AA1;
 mycell{1,2,2} = AA2;
 mycell{1,4,2} = AA4;
 mycell{2,1,2} = BB1;
 mycell{2,2,2} = BB2;
 mycell{2,4,2} = BB4;
 // eventually you can chop the unused part of the mycell to the index of the date you have entered. notice that the rest of the cell variables that you haven't entered any data in are empty
 mycell = mycell(1:2,1:4,1:2); 

0 Comments

Babak

Contact us