我是Matlab的新手。您可能会发现这个问题很愚蠢,但我真的很想知道下面的语句是按值传递操作还是按引用传递操作。
I = imread('logo.png');
binaryImage = im2bw(I, 0.4);
Itemp = binaryImage;
Itemp
是一个新的矩阵,其值是从binaryImage
复制的,还是只是一个指向binaryImage
的指针? 最佳答案
它通过引用传递,直到您修改Itemp
为止。
当您修改Itemp
时,matlab将binaryImage
复制到Itemp
,然后对其进行修改。
一阵子我做了一些有趣的测试。
如果您这样做:
A=rand(100);B=A;C=B;D=A;E=B;
内存中仅保留一份副本。如果您修改
A
A(1)=1;
然后,matlab为为新
A
的矩阵创建一个的新副本,并且变量B
,C
,D
,E
仍然指向旧A
的矩阵。