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

AA = [1:1:10]';
>> BB = [1:1:5]';
>> CC = [AA,BB]
エラー: horzcat
連結する配列の次元が一致しません。
になります。

2 Comments

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 on 17 Feb 2023
水平方向に連結していきたいと思っています。(1列目10行/2列目5行みたいな感じで)
よろしくお願いします。

Sign in to comment.

 Accepted Answer

Kojiro Saito
Kojiro Saito on 17 Feb 2023

1 vote

こちらの回答が参考になると思います。同じ行数にするように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 Comment

Masakazu
Masakazu on 17 Feb 2023
ありがとうございます。

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2018b

Asked:

on 16 Feb 2023

Commented:

on 17 Feb 2023

Community Treasure Hunt

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

Start Hunting!