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

时间:2010-08-06 19:56:19

标签: matlab

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

Matlab中是否存在与C ++中的引用概念类似的东西?换句话说:是否可以将两个变量指向同一个矩阵?

1 个答案:

答案 0 :(得分:19)

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

例如,如果您将图片存储在imgStruct字段firstImagefourthImage的结构中,并且您通过了imgStruct.fourthImage作为函数的输入,即使调用了数组,也不会复制数组。函数内部inputImage

如果您打算写入图像,可以创建handle class来存储您的图像数据,该数据通过引用传递(因此,如果您修改了函数内部的图像,它也会在您的图像中修改基础工作空间)。