Как мне получить индекс матрицы, которая хранится в 4D матрице? - PullRequest
0 голосов
/ 14 ноября 2018

Я пишу некоторый код, в результате чего я сохраняю изображение в градациях серого, которое разбивается на «блоки» в массиве 4D. Я буду проходить по всем «блокам» в массиве 4D и буду выполнять вычисления на основе содержимого блоков по сравнению друг с другом. Я хочу сравнивать только «блоки», которые находятся рядом друг с другом, и для этого я могу просто рассчитать расстояние между «блоками» и не перебирать те, которые находятся слишком далеко. Для этого мне нужен индекс каждого «блока» в 4D матрице, что в конечном итоге и создает мой вопрос.

Мой код выглядит так:

for i=4dmatrix1
    for j=4dmatrix2
        % Do calculations here involving the index of i
        % and j in their respective matrices.
    end
end

У меня есть i и j, но я хочу найти их индекс в 4dmatrix1 и 4d matrix2 соответственно. 4dmatrix1 и 4dmatrix2 - изображения в оттенках серого, которые были разбиты на «блоки» размером 20x20 пикселей. Каждая матрица в 4dmatrix1 и 4dmatrix2 является «блоком» на изображении 1 и изображении 2. Причина, по которой я использовал этот метод для хранения данных, поскольку они по-прежнему представляют форму изображения, просто разделена на блоки 20x20. В моей голове это понятно, но, возможно, для программирования это неэффективно и должно быть изменено. Если да, что бы вы посоветовали изучить?

Спасибо!

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете циклически перемещаться по индексам матрицы в любом измерении, а затем отображать это на индексы, используя ind2sub.По сути, синтаксис был бы

[id1,id2,id3,id4] = ind2sub(size(my4Dmatrix, i));

и что-то похожее на j.
Не совсем ваш вопрос, но что-то не совсем правильно с тем, как вы зацикливаетесь.Кроме того, вы должны включить минимальный рабочий пример, включая генерацию пары матриц и использование правильного синтаксиса (вы не можете начинать имя переменной в MATLAB с числа).

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