Как решить: Ошибка при использовании horzcat Размеры сцепляемых матриц не согласованы - PullRequest
0 голосов
/ 07 сентября 2018

На этапе объединения все в порядке. Когда я сохраняю эти переменные (каждая переменная имеет размер 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);

1 Ответ

0 голосов
/ 07 сентября 2018

Учитывая матрицу Class1 или произвольный размер, добавление 1 в конце каждой строки выполняется следующим образом:

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

Функция ones создает матрицу с единицами иззапрашиваемый размер.Здесь мы используем количество строк в Class1, так что две матрицы имеют одинаковое количество строк и могут быть объединены.

В общем, чтобы добавить произвольное число n, выможет сделать:

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

или:

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

или:

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