Удалить столбец, содержащий 0, из матрицы в Scilab - PullRequest
0 голосов
/ 24 февраля 2012

у меня матрица выглядит как

1 2 3 4 5 6

0 1 0 1 0 1

Теперь я хотел бы удалить все строки, содержащие 0, так что результат должен быть

2 4 6

1 1 1

Я ищу другие похожие темы, но не могу разобраться. Не могли бы вы помочь мне, пожалуйста?

1 Ответ

3 голосов
/ 28 февраля 2012

Давайте воспользуемся примером, который вы перечислили:

-->A = [1 2 3 4 5 6; 0 1 0 1 0 1]
 A  =

    1.    2.    3.    4.    5.    6.  
    0.    1.    0.    1.    0.    1.  

Во-первых, в терминологии Scilab вы удаляете все столбцы , которые содержат 0, в соответствии с вашим примером.

Вот код, который позволяет вам сделать это:

-->[row, column] = find(A == 0)
 column  =

    1.    3.    5.  
 row  =

    2.    2.    2

Эта строка возвращает координаты всех элементов, которые имеют 0 в матрице A.

Вы можете удалить все столбцы с нулем, например:

-->A(:, column) = []
 A  =

    2.    4.    6.  
    1.    1.    1.  
...