配列行数が違うものを​連結する方法をおしえ​てください。

40 Ansichten (letzte 30 Tage)
Masakazu
Masakazu am 16 Feb. 2023
Kommentiert: Masakazu am 17 Feb. 2023
AA = [1:1:10]';
>> BB = [1:1:5]';
>> CC = [AA,BB]
エラー: horzcat
連結する配列の次元が一致しません。
になります。
  2 Kommentare
Kojiro Saito
Kojiro Saito am 16 Feb. 2023
AAが10行×1列、BBが5行×1列ですが、CCは水平に連結してN行×2列のデータにしたいということでしょうか?
もし垂直に連結して15行×1列にしたいなら、セミコロンでできますが。
AA = [1:1:10]';
BB = [1:1:5]';
CC = [AA;BB]
CC = 15×1
1 2 3 4 5 6 7 8 9 10
whos
Name Size Bytes Class Attributes AA 10x1 80 double BB 5x1 40 double CC 15x1 120 double cmdout 1x33 66 char
Masakazu
Masakazu am 17 Feb. 2023
水平方向に連結していきたいと思っています。(1列目10行/2列目5行みたいな感じで)
よろしくお願いします。

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Kojiro Saito
Kojiro Saito am 17 Feb. 2023
こちらの回答が参考になると思います。同じ行数にするようにzerosやnanで埋めて配列を作るか、セル配列を作るかのやり方があります。
nanで埋める方法
AA = [1:1:10]';
BB = [1:1:5]';
CC = [AA,[BB;nan(length(AA)-length(BB),1)]]
CC = 10×2
1 1 2 2 3 3 4 4 5 5 6 NaN 7 NaN 8 NaN 9 NaN 10 NaN
セル配列を使う方法
CC = cell(length(AA),2);
CC(1:length(AA),1) = num2cell(AA);
CC(1:length(BB),2) = num2cell(BB);
disp(CC)
{[ 1]} {[ 1]} {[ 2]} {[ 2]} {[ 3]} {[ 3]} {[ 4]} {[ 4]} {[ 5]} {[ 5]} {[ 6]} {0×0 double} {[ 7]} {0×0 double} {[ 8]} {0×0 double} {[ 9]} {0×0 double} {[10]} {0×0 double}
  1 Kommentar
Masakazu
Masakazu am 17 Feb. 2023
ありがとうございます。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!