我想创建一些东西来存储字符串,例如:
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发布于 2012-04-30 12:02:38
在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-30 12:03:57
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);https://stackoverflow.com/questions/10377948
复制相似问题