【问题标题】:Is it possible to get a reference to a matrix in Matlab?是否可以在 Matlab 中获取对矩阵的引用?
【发布时间】:2011-03-26 12:46:17
【问题描述】:

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

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多