这个MATLAB语句是什么:[M N~] = size(image);?

时间:2011-07-20 18:02:37

标签: matlab

这句话是什么意思???

[M N ~] = size(imge);

我不明白使用这个“〜”的原因,这个语句也给出了错误信息。

2 个答案:

答案 0 :(得分:4)

自2009b以来的MATLAB版本中,您可以使用代字号(~to ignore outputs which you don't need。如果它给你一个错误,这意味着你的版本不支持使用代字号,你必须用虚拟变量名替换它:

[M N dummy] = size(imge);

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

通常只有在您之后感兴趣的其他参数时才使用代字号。 size是一个例外,它检查(使用nargout)它应生成多少输出并相应地更改其行为as documented here.

即,

test = zeros(3,4,5);
[M N dummy] = size(test);

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

test = zeros(3,4,5);
[M N] = size(test);

产生M = 3,N = 20.

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

答案 1 :(得分:0)

[M N D]=size(img);

size 命令将为您提供第一个变量M中的行数,第二个变量N中的列数以及参数图像中第三个变量D中的维数案件。如果是灰度图像,则D = 2,如果是RGB图像,则D = 3。如果你的陈述给出了错误,那么按照我向你展示的正常惯例是明智的。希望这有帮助:)