Effacer les filtres
Effacer les filtres

regarding storage issues for mixed-type value matrix

1 vue (au cours des 30 derniers jours)
liangjian
liangjian le 23 Nov 2011
There has a loop in my program, and during each iteration an ID will be generated. I want to store these IDs into a two dimensional array, i.e., A. The first column of A stores the iteration number, i.e., A(1,1) = 1 and A(2,1) = 2. The second column of A stores the ID generated during each iteration, i.e., A(1,2) stores the ID generated during the first iteration. The tricky part is that these IDs can be either a numerical value or a string. For instance, A(1,2) = 12345; A(2,2) = abcde. Which kind of data structure should I use to store this mixed-value matrix?

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 23 Nov 2011
% cell array
A = {1 12345;2 'abcde'}
% structure array
A = struct('iter',{1 2},'ID',{12345,'abcde'})
A.ID
A.iter
e.g.
A = cell(2);
for j1 = 1:2
A{j1,1} = j1;
if j1 == 1
A{j1,2} = 12345; % or other
else
A{j1,2} = 'abcde';
end
end
OR
A = struct('iter',[],'ID',[]);
for j1 = 1:2
A(j1).iter = j1;
if j1 == 1
A(j1).ID = 12345; % or other
else
A(j1).ID = 'abcde';
end
end

Plus de réponses (1)

Image Analyst
Image Analyst le 23 Nov 2011
I'd use an array of structures. I think it would be simplest. However you can use a cell array if you want, though figuring out when to use parentheses and when to use braces can be tricky.

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by