add blank spaces in cell array
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have the following array
ar=
0 1 0 0 0 0 0 0 0 0
0 0 0 3 0 0 0 0 0 0
0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 0 3 0
4 0 0 0 0 0 0 0 0 0
And I would like to create a 5x1 cell array C like this one:
C =
5×1 cell array
{' 0 1 0 0 0 0 0 0 0 0'}
{' 0 0 0 3 0 0 0 0 0 0'}
{' 0 0 0 0 0 0 2 0 0 0'}
{' 0 0 0 0 0 0 0 0 3 0'}
{' 4 0 0 0 0 0 0 0 0 0'}
That is with 10 blank spaces at the beginning of each row. I tried this:
fmt=repmat(' % 11.1i',1,10);
fmt=[' ' fmt4(2:end) '\n'];
rew=num2str(ar,fmt4)
tes=num2cell(ar)
C = cellfun(@cell2mat,num2cell(tes,2),'un',0)
And I get this:
C =
5×1 cell array
{'0 1 0 0 0 0 0 0 0 0'}
{'0 0 0 3 0 0 0 0 0 0'}
{'0 0 0 0 0 0 2 0 0 0'}
{'0 0 0 0 0 0 0 0 3 0'}
{'4 0 0 0 0 0 0 0 0 0'}
Is there a way to add the blank spaces in cell array C?
1 Kommentar
Jan
am 6 Nov. 2018
What does "That is with 10 blank spaces at the beginning of each row" mean for values with more than 1 digit?
Akzeptierte Antwort
Jan
am 6 Nov. 2018
Bearbeitet: Jan
am 6 Nov. 2018
ar = [0,1,0,0,0,0,0,0,0,0; ...
0,0,0,3,0,0,0,0,0,0; ...
0,0,0,0,0,0,2,0,0,0; ...
0,0,0,0,0,0,0,0,3,0; ...
4,0,0,0,0,0,0,0,0,0];
fmt = repmat('%11d', 1, size(ar,2));
% Either:
C = sprintfc(fmt, ar); % Unfortunately not documented
% Or:
D = compose(fmt, ar) % Working since R2016b
0 Kommentare
Weitere Antworten (1)
Stephen23
am 6 Nov. 2018
Bearbeitet: Stephen23
am 6 Nov. 2018
>> ar = [0,1,0,0,0,0,0,0,0,0;0,0,0,3,0,0,0,0,0,0;0,0,0,0,0,0,2,0,0,0;0,0,0,0,0,0,0,0,3,0;4,0,0,0,0,0,0,0,0,0]
ar =
0 1 0 0 0 0 0 0 0 0
0 0 0 3 0 0 0 0 0 0
0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 0 3 0
4 0 0 0 0 0 0 0 0 0
>> C = num2cell(reshape(sprintf('%11d',ar.'),[],size(ar,1)).',2);
>> C{:}
ans = 0 1 0 0 0 0 0 0 0 0
ans = 0 0 0 3 0 0 0 0 0 0
ans = 0 0 0 0 0 0 2 0 0 0
ans = 0 0 0 0 0 0 0 0 3 0
ans = 4 0 0 0 0 0 0 0 0 0
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!