我有两个矩阵
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
感谢您的建议!
答案 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
返回的变量是打印的字符数。相反,要构造字符串,请使用strcat
和num2str
,以便获得:
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)))
代替。