How to create a 3D array with matrices of unequal dimentions

17 views (last 30 days)
Hi all!
I'm a little stuck here, I have a loop:
for i = 1:length(n)
(extras)
n_input = n(i)
tjdf = tjdfCoef(q12,q23,n_input,lambda,mu
end
where the output tjdf is a matrix that has a larger and larger size after each iteration. Is there anyway to put all outputs into a 3D matrix, even though all outputs aren't equal dimension?
Thanks,
Ben

Accepted Answer

Jan
Jan on 8 Jan 2018
Edited: Jan on 8 Jan 2018
No, a 3D array must have the same number of rows and columns for all pages. Use a cell array instead:
tjdf = cell(1, length(n));
for i = 1:length(n)
(extras)
n_input = n(i)
tjdf{i} = tjdfCoef(q12,q23,n_input,lambda,mu)
end
Cell arrays are useful, if it is meaningful to access the elements by indices and if the elements have different sizes and/or types.
  1 Comment
Benjamin Schuessler
Benjamin Schuessler on 8 Jan 2018
JAN! This worked amazingly... I didn't even think of using cells. Much appreciated!
Cheers.

Sign in to comment.

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!