【问题标题】:Matrix formatting in MatlabMatlab中的矩阵格式
【发布时间】:2018-11-16 22:43:47
【问题描述】:

我现在正在学习 MATLAB,我正在尝试打印一个可以同时打印行和列的矩阵。像这样:

(1,1) (2,1) (3,1)

(1,2) (2,2) (3,2)

(1,3) (3,2) (3,3)

但我要打印的是:

1,1

2,1

3,1


1,2

2,2

3,2


1,3 

2,3

3,3

如何在 Matlab 中格式化矩阵?

【问题讨论】:

  • 查看fprintf函数,或许对你有帮助

标签: matlab matrix


【解决方案1】:

使用fprintf函数格式化数据,例如

fprintf('\n(1,1) (1,2) (1,3)\n(2,1) (2,2) (2,3)\n(3,1) (3,2) (3,3)\n')

输出将是

(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)

你可以尝试如下:

mat = ones(10);
[r,c] = size(mat);
ind_str = '';
for ii = 1 : r
    for jj = 1 : c
        tmp = sprintf('(%2d,%2d) ',ii,jj);
        ind_str = strcat(ind_str,tmp);
    end
    ind_str = strcat(ind_str,'\n');
end
fprintf(ind_str);

【讨论】:

  • 您没有使用fprintf 的任何功能,您可以将其替换为disp 并查看相同的输出。
  • 您好,非常感谢您的回复。我已经尝试过更早的直接打印可能会起作用,但我的问题是我正在使用 for 循环创建这个矩阵。就像一旦我发现我的问题,我需要创建一个类似性质的 10x10 甚至 100x100 矩阵。这就是我的循环的构造方式 k=1; for i=1:5 for j=1:5 fprintf('%d,%d \n',j,k) end fprintf('\n') k=k+1;结束