как я могу исключить в матрице (4000x10) все столбцы, последние два элемента которых равны? (в Matlab)
Я думаю, предыдущие ответы перевернутые строки и столбцы, я бы сделал:
A=[1 2 3 ; 4 5 6 ; 5 5 5] A = 1 2 3 4 5 6 5 5 5
Здесь второй столбец имеет те же два последних элемента.
A(:,A(end,:)==A(end-1,:))=[] A = 1 3 4 6 5 5
Сначала вы индексируете все столбцы, последние два элемента которых равны, т.е. последние две строки матрицы равны.Допустим, матрица имеет вид A:
A
index = (A(:,end) == A(:,end-1) );
Затем, удалив эти столбцы,
A(:,index) = [];
Попробуйте:
B = A( : , A(: , end-1) ~= A(: , end) )
Вот почему это работает:
A(:,end-1)
A(:,end)
A(: , end-1) ~= A(: , end)