将两个字符串数组合并为一个矩阵

时间:2014-02-03 07:39:09

标签: arrays string matlab

这应该很简单,但在Matlab中令人难以置信的困难和令人沮丧。如果我有像这样的字符串数组

row = ['A','a'] 

和其他像这样的

column = ['a','a']

我将如何获得

    matrix ='A'   'a'
      'a' [ 'Aa'  'aa'     
      'a'  'aA'   'aa'  ]

我已经尝试过Kronecker张量,这对字符串不起作用,我必须做各种令人讨厌的单元格和字符串转换,而Matlab有这种令人烦恼的行为,即将字符串数组转换为常规字符串,弄乱我的值和间距。

2 个答案:

答案 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;

请注意,我使用了大括号而不是方形,这使得它使用单元格数组而不是普通数组,这就是获得所需“间距”的方法。