这个 MATLAB 语句是什么:[MN ~] = size(imge);?

che*_*hee 5 matlab

这个说法是什么意思???

[M N ~] = size(imge);
Run Code Online (Sandbox Code Playgroud)

不明白为什么要用这个“~”,这个语句也给出了错误提示。

Jon*_*erg 5

在 2009b 之后的 MATLAB 版本中,您可以使用波浪号 ( ~)忽略不需要的输出。如果它给你一个错误,那意味着你的版本不支持波浪号的这种使用,你必须用一个虚拟变量名替换它,如下所示:

[M N dummy] = size(imge);
Run Code Online (Sandbox Code Playgroud)

正如 Sumona 解释的那样,M 将包含图像中的行数,N 将包含列数;dummy 将为 1(对于一张黑白图像)、3(对于一张彩色图像)或任意整数(对于图像堆栈)。

通常,如果您之后还有其他感兴趣的参数,则使用波浪号才有意义。size这里是一个例外,因为它检查(使用nargout)它应该产生多少输出并相应地改变其行为,如此处所述.

那是,

test = zeros(3,4,5);
[M N dummy] = size(test);
Run Code Online (Sandbox Code Playgroud)

正如人们所期望的那样产生 M=3,N=4,但是

test = zeros(3,4,5);
[M N] = size(test);
Run Code Online (Sandbox Code Playgroud)

产生 M=3,N=20。

在您的特定情况下,我假设imge是一个图像堆栈,程序员想找出单个图像的大小,但不知道有多少。