Как сканировать всю матрицу по точкам - PullRequest
1 голос
/ 17 июля 2011

Взятые у меня есть некоторые переходные операции, где определенные числа моей матрицы (M) заменяются друг на друга (все становятся 5, все 2 становятся 6 и т. Д.). Теперь я знаю, что могу написать такой код:

if M(1,1)== 1 M(1,1)=5 end
if M (1,1)== 2 M(1,1)=6 end
if M(1,2)==1 M(1,2)=6 end

Конечно, если у меня есть матрица (10 на 10 на 10), это много ненужной работы. Есть ли возможность определить 3 измерения (столбец, строка, страница) или сказать Matlab что-то вроде:

% scan from point (1,1,1) to point (10,10,10) and apply mathematical operations when condition is fulfilled.

Спасибо

Ответы [ 2 ]

3 голосов
/ 17 июля 2011

Существует простая команда, которая изменяет все a с на b с в массиве с помощью логической индексации.Например,

B = (M == 1);
M(B) = 5;

должен изменить все 1 с M на 5 с.

1 голос
/ 17 июля 2011

Я не слишком знаком с MATLAB, но похоже, что вы должны быть в состоянии определить 3 скалярных переменных i, j и k и использовать 3 вложенных цикла for для итерации по каждой упорядоченной тройке (x, y, z ) с 0 <= x, y, z <10 ... выполняя логику переключения внутри самого внутреннего цикла. </p>

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