MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   是否可以在Matlab中获得对矩阵的引用? (https://www.labfans.com/bbs/showthread.php?t=23763)

poster 2019-12-10 20:48

是否可以在Matlab中获得对矩阵的引用?
 
具有一个具有四个非常大的矩阵的结构,这些矩阵对应于灰度图像。根据函数的输入,我想将这四个矩阵之一存储在变量中。但是,由于这些矩阵很大,因此我不想创建它们的副本。

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



[B]回答:[/B]

Matlab对变量使用[URL="http://blogs.mathworks.com/loren/2006/05/10/memory-management-for-functions-and-variables/"]“写入时的惰性副本”[/URL] 。这意味着,如果将数组(或所有数组)传递给函数,除非您写入数组,否则它们不会重复。换句话说,您可能不需要做您想做的事。

例如,如果将图像存储在具有imgStruct字段到fourthImage字段的firstImage结构中,并且将imgStruct.fourthImage作为函数的输入传递,则即使该函数内部调用了inputImage ,该数组也不会重复。

如果您打算写入图像,则可以创建一个[URL="http://www.mathworks.com/help/matlab/handle-classes.html"]句柄类[/URL]来存储图像数据,该[URL="http://www.mathworks.com/help/matlab/handle-classes.html"]句柄类[/URL]通过引用传递(因此,如果您在函数内部修改图像,它也会在您的基本工作空间中进行修改)。



[url=https://stackoverflow.com/questions/3427288]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:13

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.