这应该很简单,但在Matlab中令人难以置信的困难和令人沮丧。如果我有像这样的字符串数组
row = ['A','a']
和其他像这样的
column = ['a','a']
我将如何获得
matrix ='A' 'a'
'a' [ 'Aa' 'aa'
'a' 'aA' 'aa' ]
我已经尝试过Kronecker张量,这对字符串不起作用,我必须做各种令人讨厌的单元格和字符串转换,而Matlab有这种令人烦恼的行为,即将字符串数组转换为常规字符串,弄乱我的值和间距。
答案 0 :(得分:2)
您正在寻找strcat()
,它将水平连接字符串:
row = {'A' 'a'};
result1 = strcat(row, 'a');
result2 = strcat('a', row);
在此之后,您将获得:
result1 =
'Aa' 'aa'
result2 =
'aA' 'aa'
答案 1 :(得分:1)
这将有效:
row = ['A','a']
col = ['a'; 'a']
M = {[row(1), col(1)], [row(1), col(2)];
[row(2), col(1)], [row(2), col(2)]}
如果您有更长的“索引”向量,那么将它推广到循环非常简单。
for r = 1:size(row,2)
for c = 1:size(col,1)
M{r,c} = [row(r), col(c)];
end;
end;
请注意,我使用了大括号而不是方形,这使得它使用单元格数组而不是普通数组,这就是获得所需“间距”的方法。