Changing array type?

조회 수: 8 (최근 30일)
Marc-Olivier Labrecque-Goulet
Marc-Olivier Labrecque-Goulet 2017년 3월 7일
편집: Jan 2017년 3월 7일
Hi I'm trying to convert some data in an array : tab = [1 2 3 4 5; 1 10 11 100 101];
into something like this :
tab = {1 2 3 4 5 ; '001' '010' '011' '100' '101'};
I think I've got almost everything figure out except how I can transform my array from : tab = [1 2 3 4 5; 1 10 11 100 101]; to : tab = {1 2 3 4 5; 1 10 11 100 101};

채택된 답변

Jan
Jan 2017년 3월 7일
편집: Jan 2017년 3월 7일
To get from tab = [1 2 3 4 5; 1 10 11 100 101]; to : tab = {1 2 3 4 5; 1 10 11 100 101} :
tab = [1 2 3 4 5; 1 10 11 100 101];
tabc = num2cell(tab);
But the more complicated problem is the conversion to strings of the 2nd row. With the undocumented sprintfc command:
tab = [1 2 3 4 5; 1 10 11 100 101];
tabc = cat(1, num2cell(tab(1, :)), sprintfc('%03d', tab(2, :)))
sprintfc exists for many years now, but it is not mentioned in the docs, such that it might be removed in the future. To be bullet-proof, use a loop:
len = size(tab, 2);
cstr = cell(1, len);
for k = 1:len
cstr{k} = sprintf('%03d', tab(2, k));
end
tabc = cat(1, num2cell(tab(1, :)), cstr);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by