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

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

2 comentarios

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

Iniciar sesión para comentar.

 Respuesta aceptada

Kojiro Saito
Kojiro Saito el 17 de Feb. de 2023

1 voto

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

Masakazu
Masakazu el 17 de Feb. de 2023
ありがとうございます。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Versión

R2018b

Etiquetas

Preguntada:

el 16 de Feb. de 2023

Comentada:

el 17 de Feb. de 2023

Community Treasure Hunt

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

Start Hunting!