一个matlab代码我不明白

时间:2015-01-11 22:48:31

标签: matlab

我不明白下面命令中(1:65536 < wthresh)的含义是什么:

cw = reshape(b(:)' .* (1:65536 < threshold), 256, 256);

b是大小为256x256和65536 = 256x256的图像。我只知道这样的命令:

cw = reshape(b(:)' .* (b < threshold), 256, 256);

意味着我们只保留b的像素小于&#39;阈值&#39;。

1 个答案:

答案 0 :(得分:4)

只需找出简单的例子:

>> (1:10<3)
ans =

   1   1   0   0   0   0   0   0   0   0

这会产生一个向量,其中前2个元素设置为1,其余元素为0。

>> b=1:10
b =

    1    2    3    4    5    6    7    8    9   10

>> b.*(1:10<3)
ans =

   1   2   0   0   0   0   0   0   0   0

这是与向量b的元素相乘。因此基本上保留了第一个threshold-1元素,而其余元素设置为0. reshape将向量重新排列为256 x 256矩阵。由于我不知道预期的输出,我无法判断这是否是所需的行为,或者它是否是代码中的错误。