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 配列として宣言してから、必要なデータを入力することをお勧めします。

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

これにより、目的の出力が生成されます。

2 番目の質問について、数値配列をセル配列と連結する場合は、最初に num2cell を使用して、次のようにセル配列に変換する必要があります。

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

その場合、FINAL は 9 つのセルの配列になり、FINAL{1,3} = orange1 のようにアクセスできます。セルを使ってコンパクトなコードを書くには、2 つの便利な関数である 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 に答える