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

56 vues (au cours des 30 derniers jours)
Masakazu
Masakazu le 16 Fév 2023
Commenté : Masakazu le 17 Fév 2023
AA = [1:1:10]';
>> BB = [1:1:5]';
>> CC = [AA,BB]
エラー: horzcat
連結する配列の次元が一致しません。
になります。
  2 commentaires
Kojiro Saito
Kojiro Saito le 16 Fév 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 le 17 Fév 2023
水平方向に連結していきたいと思っています。(1列目10行/2列目5行みたいな感じで)
よろしくお願いします。

Connectez-vous pour commenter.

Réponse acceptée

Kojiro Saito
Kojiro Saito le 17 Fév 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 commentaire
Masakazu
Masakazu le 17 Fév 2023
ありがとうございます。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!