2016-09-13 53 views
2

我寻找,让我像下面的示例的输出比用celldisp其它的方式显示单元阵列内容:显示单元阵列内容

celldisp(stuff) 

和一个典型输出:

stuff{1} = 
    10 70 20 50 50 90 90 30 30 60 
stuff{2} = 
    80 50 50 50 30 90 40 60 50 60 20 20 
stuff{3} = 
    20 90 10 80 20 30 30 70 

我更愿意把它打印出来是这样,而不是:

10 70 20 50 50 90 90 30 30 60 
80 50 50 50 30 90 40 60 50 60 20 20 
20 90 10 80 20 30 30 70 

这可能吗?非常感谢帮助!

回答

2

一种方法可能是使用num2str,如果没有提供格式说明符,它会自动用空格填充条目。您可以利用呼叫fprintf循环利用此行为。

例如:

stuff{1} = [10, 70, 20, 50, 50, 90, 90, 30, 30, 60]; 
stuff{2} = [80, 50, 50, 50, 30, 90, 40, 60, 50, 60, 20, 20]; 
stuff{3} = [20, 90, 10, 80, 20, 30, 30, 70]; 

for ii = 1:numel(stuff) 
    fprintf('%s\n', num2str(stuff{ii})); 
end 

主要生产:

>> iheartSO 
10 70 20 50 50 90 90 30 30 60 
80 50 50 50 30 90 40 60 50 60 20 20 
20 90 10 80 20 30 30 70 

,如果你想成为所有紧凑的东西,你也可以利用相当于cellfun电话:

cellfun(@(x)fprintf('%s\n', num2str(x)), stuff); 
+0

这是快:D –

+0

非常好的主意! –