Можно ли получить ссылку на матрицу в Matlab?

A имеют структуру с четырьмя очень большими матрицами, соответствующими оттенкам серого. В зависимости от ввода моей функции я хочу сохранить одну из этих четырех матриц в переменной. Однако, поскольку эти матрицы очень большие, я не хочу создавать их копию.

Есть ли что-то подобное в Matlab для концепции ссылки в С++? Или другими словами: возможно ли иметь две переменные, указывающие на одну и ту же матрицу?

Ответы

Ответ 1

Matlab использует "ленивая копия для записи" для переменных. Это означает, что если вы передадите свой массив (или все из них) в свою функцию, они не будут дублироваться, если вы не напишете в массив (ы). Другими словами, вам может не понадобиться делать то, что вы хотите сделать.

Например, если вы сохраняете свои изображения в структуре imgStruct с полями firstImage до fourthImage, и вы передаете, например. imgStruct.fourthImage как вход в функцию, массив не дублируется, даже если он называется, например. inputImage внутри функции.

Если вы планируете писать на изображение, вы можете создать класс дескриптора для хранения ваших данных изображения, который передается по ссылке ( таким образом, если вы измените изображение внутри функции, оно также будет изменено в рабочей области базы).