regarding storage issues for mixed-type value matrix

조회 수: 1 (최근 30일)
liangjian
liangjian 2011년 11월 23일
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?

채택된 답변

Andrei Bobrov
Andrei Bobrov 2011년 11월 23일
% 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

추가 답변 (1개)

Image Analyst
Image Analyst 2011년 11월 23일
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.

카테고리

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