MATLAB:如何使用fprintf或sprintf打印带字符串togheter的矩阵和向量?

时间:2015-11-01 14:49:12

标签: string matlab matrix vector printf

我在开始使用MATLAB软件时,我有两个问题:

1)如果我想打印矩阵,前面有一个字符串,使用fprintf命令,我该怎么办? 例如,要单独打印矩阵,我使用

fprintf([repmat('%d\t', 1, size(r, 2)) '\n'], r');   

但是如何在fprintf中打印一个后跟矩阵的字符串,而不是使用disp函数? 例如,如果我想打印:

>>The matrix you inserted is [1 3; 4 6]

2)我怎样才能用向量做同样的事情(我知道它只是矩阵的一个特例)? 我实际上使用,例如:

>>vectorname=[1 5 2];
>>strtrim(sprintf('%d  ', vectorname));

对于矢量的唯一数字它是可以的,但如果我在spintf中插入一个字符串,结果是:

 >>vectorname=[1 5 2];
 >>strtrim(sprintf('Your vector is:  %d  ', vectorname))

 >>Your vector is 1 Your vector is 5 Your vector is 2

如果只用一个命令(sprintf,fprintf,ecc。),我怎样才能使数字成为另一个数字?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

在这两种情况下,您都可以使用mat2str

第一种情况:

input_mat = [1 3; 4 6];
sprintf(['The matrix you inserted is ' mat2str(input_mat)])

ans =

The matrix you inserted is [1 3;4 6]

第二种情况:

vectorname=[1 5 2];
sprintf(['Your vector is: ', mat2str(vectorname)])

ans =

Your vector is: [1 5 2]