0

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

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
4

2 回答 2

4

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

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

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 和 deal,这是两个有用的函数。

希望这可以帮助 !

于 2012-04-30T04:02:38.413 回答
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);
于 2012-04-30T04:03:56.683 回答