我是 Matlab 的新手。有没有办法使用 printmat
打印 2 个单词的标题?
示例结果如下:
Title One Title Two Title Three
11 22 33
22 33 44
这是我目前尝试修改的代码:
matA = [ 11 22 33; 22 33 44];
printmat(matA, '' , '' , 'TitleOne TitleTwo TitleThree');
我似乎无法在“标题”和“一”之间添加空格,其中添加空格总是会导致以下结果:
printmat(matA, '' , '' , 'Title One Title Two Title Three');
Title One Title
11 22 33
22 33 44
任何帮助表示赞赏。
最佳答案
根据 Matlabs 帮助, printmat
不会提供您正在寻找的内容。您可以改用 sprintf
。
a = [ 11 22 33; 22 33 44];
s = {'Title One' 'Title Two' 'Title Three'};
s1 = sprintf('%12s\t%12s\t%12s\t\n', s{:});
s2 = sprintf('%12d\t%12d\t%12d\n', a);
horzcat(s1,s2)
这导致
ans =
Title One Title Two Title Three
11 22 22
33 33 44
~编辑~
如果使用
printmat
更可取(例如,因为它更灵活),您可以使用 evalc
和 strrep
来解决。这里的技巧是在调用 printmat
时用其他符号(例如问号)替换空格,通过 evalc
将输出存储在字符串中,然后使用 strrep
用空格替换问号。作为一个不错的副产品,您将表格作为字符串...a = [ 11 22 33; 22 33 44];
x = evalc('printmat(matA, '''' , ''a b c'' , ''Title?One Title?Two Title?Three'')');
s = strrep(x, '?', ' ')
这导致
s =
Title One Title Two Title Three
a 11.00000 22.00000 33.00000
b 22.00000 33.00000 44.00000
但是printmat和evalc的结合导致很多撇号...
关于Matlab 打印垫,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15069773/