如何在print语句中打印矩阵的大小?

时间:2014-08-01 12:16:23

标签: matlab octave

我想在文本打印语句中打印矩阵/向量的大小。像这样:

fprintf("The size of the matrix is: %s", size(m))

当然它不起作用,我无法知道如何。

编辑:
我试过这个并且它有效,但是有更好的方法吗?

fprintf('The size of the matrix is: %s\n', num2str(size(p)))

4 个答案:

答案 0 :(得分:3)

sprintf('The size of the matrix is: %d x %d', size(m))

答案 1 :(得分:3)

在fprintf中,%s用于字符串。 您可以使用num2str或提供的任何解决方案。

fprintf('The size of the matrix is: %s', num2str(size(zeros(10,10))))

答案 2 :(得分:2)

首先,您需要生成确切的模板。为了计算任意数量的维度,您可以使用以下内容:

octave-cli-3.8.1> a = ones (7, 3, 4, 8);
octave-cli-3.8.1> template = strjoin (repmat ({"%i"}, [1 ndims(a)]), " x ")
template = %i x %i x %i x %i

然后只需使用它fprintf

octave-cli-3.8.1> sprintf (["The size is: " template "\n"], size (a))
ans = The size is: 7 x 3 x 4 x 8

答案 3 :(得分:0)

sprintf('The size of the matrix is: %s', num2str(size(m)))

你也可以这样做:

display(['The size of the matrix is: ' size(m)])

但结果却截然不同,所以取决于你。