Как удалить указанные c строк и столбцов в матрицах в массиве ячеек Matlab - PullRequest
0 голосов
/ 21 февраля 2020

Очень новый для кодирования и Matlab здесь!

У меня есть массив ячеек (16 * 1) (1 столбец, 16 строк). В каждой ячейке у меня есть одна матрица 76 * 76.

В каждой из матриц я хотел бы удалить определенные строки (например, от 1 до 10, 22 и 76) и те же столбцы (от 1 до 10, 22 и 76).

Я понятия не имею, как go об этом. Я пытался прочитать документацию по началу работы, но мне все еще неясно ... Я был бы очень признателен за любую помощь и объяснение!

Спасибо :)

1 Ответ

2 голосов
/ 21 февраля 2020

Существует два способа удаления элементов. Один - назначить [] строкам и столбцам, которые вы хотите удалить, другой - выбрать то, что вы хотите.

%some example data
x={magic(76),magic(76)}
%First option assign []
x{1}([1:10,22,76],:)=[]
x{1}(:,[1:10,22,76])=[]
%Second option, index what you need:
%All values from 11 to 75 without 22
selector=setdiff(11:75,22)
x{2}=x{2}(selector,selector)

Очевидно, что вместо жестко заданных {1} или {2}, вы бы вызовите их в a для l oop.

Некоторые советы: если у вас есть ячейка с матрицами одинакового размера и вы хотите выполнить одну и ту же операцию для каждой из них, вполне вероятно, что a (76,76 16) лучше подходит для вас. Чтобы придерживаться приведенного выше примера:

x=ones(76,76,16);
x=x(selector,selector,:);

Все сделано в одну строку.

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