1. ホーム
  2. matlab

[解決済み] 解決方法 horzcat を使用したエラー 連結される行列の次元が一致しない

2022-02-27 06:02:02

質問

連結ステップではすべてうまくいっています。これらの変数(各変数のサイズは30x180です)を保存し、ラベル付けステップでラベル付けしているときに、このエラーが発生しました。

特徴行列の各行にラベル番号を付けたいのです。 Class1 .

Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in CONCAT (line 16)
dlmwrite(strcat('E:\Matlab Projects\FER\Features\','.txt'), [Class1 1] , 'delimiter', '\t','-append','roffset',0,
'precision', 4);

% Concatenation Step
class1 = cat(2,(load(fullfile('.', 'Features', 'ANG1.txt'))), (load(fullfile('.', 'Features', 'ANG11.txt'))));

% Labeling Step
dlmwrite(strcat('E:\Matlab Projects\FER\Features\','.txt'), [Class1 1] , 'delimiter', '\t','-append','roffset',0, 'precision', 4);

解決方法は?

行列がある場合 Class1 または任意のサイズの 1 を各行の末尾に配置することは、以下のように実現される。

nrows = size(Class1,1);
[Class1 ones(nrows,1)]

ones 関数は、指定されたサイズの1を含む行列を作成します。ここでは,行数を指定するために Class1 2つの行列が同じ行数を持ち、連結できるようにするためです。

一般に、任意の数の n は、どちらを使ってもかまいません。

[Class1, ones(nrows,1) * n]

または

[Class1, zeros(nrows,1) + n]

または

[Class1, repmat(n,nrows,1)]