我想创建一些存储字符串的东西,例如:
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
答案 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);