以另一种输出格式显示单元格数组内容



我正在寻找一种显示单元格数组内容的方法,而不是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

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

一种方法是使用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('%sn', 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('%sn', num2str(x)), stuff);

最新更新