是否有可能在Matlab中获得对矩阵的引用?

Alc*_*sta 13 matlab

A具有四个非常大的矩阵的结构,这些矩阵对应于灰度图像.根据我的函数输入,我想将这四个矩阵中的一个存储在一个变量中.但是,由于这些矩阵非常大,我不想创建它们的副本.

Matlab中有类似于C++中的引用概念吗?换句话说:是否有可能有两个指向同一矩阵的变量?

Jon*_*nas 19

Matlab 对变量使用"写入时的懒惰副本".这意味着如果将数组(或所有数组)传递给函数,除非您写入数组,否则它们不会被复制.换句话说,您可能不需要做您想做的事情.

例如,如果将图像存储在包含imgStruct字段的结构firstImagefourthImage,并且您将其imgStruct.fourthImage作为输入传递给函数,则即使inputImage在函数内部调用数组,也不会复制该数组.

如果您打算写入图像,则可以创建一个句柄类来存储图像数据,该图像数据通过引用传递(因此,如果修改函数内部的图像,它也会在基础工作区中进行修改).

  • 有关场景背后发生的事情的详细示例(写时复制),请参阅以下文章:http://stackoverflow.com/questions/1735841/initializing-a-ublas-vector-from-ac-array/1735997 #1735997 (6认同)