regarding storage issues for mixed-type value matrix
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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?
0 commentaires
Réponse acceptée
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
0 commentaires
Plus de réponses (1)
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.
0 commentaires
Voir également
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!