У меня есть матрица, такие как:Подсчитайте повторяющиеся столбцы матрицы в MATLAB
A=
1 0 0 1 1 0 0
0 0 1 0 0 1 1
0 0 0 0 0 0 0
1 0 0 0 1 0 0
Теперь я хочу, чтобы вычислить количество повторяющихся столбцов. Например, мой дубликат столбца
1
0
0
1
с количеством дубликатов 2. А другой мой дубликат столбца
0
1
0
0
с номером дубликата 3 Кроме того, я также хочу, чтобы вычислить количество нулевой колонке. В моем случае есть 1 столбец, который имеет значение 0 для всех элементов (2-й столбец) Я бы хотел, чтобы вы Matlab решили мою проблему. Пожалуйста, помогите мне сделать это. Это мой код matlab. Тем не менее, я не работает отлично
numcol=0;
n=100;% the number of columns
for i=1:n
for j=(i+1):n
if(nnz(A(:,i)-A(:,j))==0) % A is matrix kxn
numcol=numcol+1;
end
end
if(nnz(A(:,i))==0)
countzeros=countzeros+1;
end
конец Update: Мой вывод, который я хочу это
1
0
0
1
с повторяющимися 2
0
1
0
0
с повторяющимися 3 нулевой столбца 1
Вы можете просто сделать 'isequal (A (:, 1), A (:, i))' в вашем цикле for. В этом случае цикл for должен быть 'для i = 2: n', и если isequal оценивается как истинный, увеличьте счетчик. – ha9u63ar
@ user8264, пожалуйста, укажите желаемый результат, который вы хотите ... – Dan
Это не совсем дубликат предлагаемого вопроса, так как в этом вопросе явно задано * сколько * случаев в каждом столбце. В связанном вопросе только спрашивают (и отвечают), как найти строки, у которых есть все дубликаты. – Nras