如何将两个矩阵列式结合到用逗号分隔的字符串?

时间:2018-05-29 06:23:33

标签: matlab

我有两个矩阵

A = [   1  3
        4  3]  
B  = [  2  1 
        4  1 ]

我想结合A和B来生成字符串数组

C = [  "1,2"   "3,1" 
       "4,1"  "3,1"  ]

我怎样才能在MATLAB中做到这一点?我试过这种方式

for i = 1: 4; 
    for j = 1: 4; 
        fprintf('%0.2f,%0.2f\n',A(i,j),B(i,j) ) 
    end 
end

感谢您的建议!

2 个答案:

答案 0 :(得分:3)

  A = [1 3; 4 3];
  B = [2 1; 4 1];
  C = A + "," + B

 C = 

   %  2×2 string array

    %  "1,2"    "3,1"
    %  "4,4"    "3,1"

答案 1 :(得分:1)

首先要注意的是,字符串"string"和字符数组'character array'之间存在差异。字符串是一个实体,而字符数组是一个字符数组。

因此,您可以进行以下作业

A(1) = "Hello";

但不是

B(1) = 'Hello';

因为B(1)是一个值,'Hello'是5个值(H,e,l,l,o)。

其次,您不能在评论中使用fprintf,因为它只打印(如其名称),fprintf返回的变量是打印的字符数。相反,要构造字符串,请使用strcatnum2str,以便获得:

A = rand(2); %some matrices
B = rand(2);

for i = 1:2
    for j = 1:2
        C(i,j) = strcat(num2str(A(i,j)),",",num2str(B(i,j)));
    end
end

编辑:如果您要在LaTeX中交换\pm的逗号,则可以在使用

构建C时执行此操作
C(i,j) = strcat(num2str(A(i,j)),"\pm",num2str(B(i,j)))

代替。