MATLAB - 存储字符串

时间:2012-04-30 02:46:55

标签: string matlab matrix cell

我想创建一些存储字符串的东西,例如:

for x = 1:3

fruit = strcat('orange', num2str(x));

A = {fruit};

如何输出

的1x3矩阵
A = 
orange1
orange2
orange3

我尝试了一些但没有任何效果。

我认为这不复杂,但我似乎并没有理解它。

在我完成此操作后,我是否能够将正常的数值矩阵与A组合在一起,以便:

N = [1 2; 3 4; 5 6];

FINAL = [N A];

>>output of FINAL would look like
FINAL = 
1 2 orange1
3 4 orange2
5 6 orange3

2 个答案:

答案 0 :(得分:4)

在MatLab中,数值数组只能与数值数组连接。如果要创建具有不同数据类型的数组,则需要使用Cell Arrays。

要回答您的第一个问题,我建议您先将水果声明为单元格数组,然后将其填入所需数据:

fruit = cell(3,1);
for i =1:3
    fruit{i} = strcat('orange',num2str(i));
end
fruit

这应该产生所需的输出。

对于第二个问题,如果要将数值数组与单元数组连接,首先需要使用num2cell将其转换为单元数组,例如:

N = [1 2;3 4;5 6];
FINAL = [num2cell(N),fruit]

在这种情况下,FINAL将是一个包含9个单元格的数组,您可以像FINAL {1,3} = orange1一样访问它。要使用单元格编写紧凑代码,您应该看一下cellfun并处理哪两个有用的函数。

希望这有帮助!

答案 1 :(得分:0)

for x = 1:3
    fruit = ['orange', num2str(x)];
    A{x,1} = fruit;
end

N = [1 2; 3 4; 5 6];
N_as_cell = num2cell(N);

FINAL = cat(2, N_as_cell, A);