MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   求助:关于矩阵运算中得0的问题?? (https://www.labfans.com/bbs/showthread.php?t=2652)

gkyingkyin 2008-04-27 17:54

求助:关于矩阵运算中得0的问题??
 
我编的一个程序中

k=0.21267/[0.21267*I(i,j,1)+0.71516*I(i,j,2)+0.07217*I(i,j,3)];

其中 I(i,j,1) I(i,j,2) I(i,j,3) 是一个图片中某一点的R(红)G(绿)B(蓝)的色素值

可执行这个语句得到的结果总是0??

以第一个像素点 I(1,1,1)=39 I(1,1,2)=40 I(1,1,3)=42为例

如果用

k=0.21267/[0.21267*39+0.71516*40+0.07217*42]=0.0058

用k=0.21267/[0.21267*I(1,1,1)+0.71516*I(1,1,2)+0.07217*I(1,1,3)]=0

我个人觉得是矩阵的保留小数位数的问题,但不知如何解决

请高人指点,谢谢!!:cool:

shiqiang 2008-04-27 18:03

我在我的机器上试过你的程序了,我的到的结果是正确的,你尝试改一下format

gkyingkyin 2008-04-27 18:07

如何更改format,不太懂,请超版明示:lovely:

shiqiang 2008-04-27 18:12

就是相当于C语言的short ,long 等等。你可以help format看一下,很简单的。

gkyingkyin 2008-04-27 18:40

改过了,还是不好使啊,似乎只能改变

k=0.21267/[0.21267*39+0.71516*40+0.07217*42];

的结果显示范围啊,

k=0.21267/[0.21267*I(1,1,1)+0.71516*I(1,1,2)+0.07217*I(1,1,3)];

的结果还是0......

很奇怪为什么这两个显示的数值不一样呢??

shiqiang 2008-04-27 18:44

啊?为什么在我的机器上就正常呢,嗯?

gkyingkyin 2008-04-27 19:01

我也不知道啊,很郁闷......

是改preferences中的command window吧

我选的是

text display:

short
loose

display 中的第三个打勾
number of lines 是5000

accessbility 没打勾

tab size 是5

和超版的一样么?

shiqiang 2008-04-27 19:07

一样,那是不是你的计算机硬件的问题呢?

gkyingkyin 2008-04-27 19:10

不会吧......不太明白,这个和硬件也有关系么?我彻底迷糊了:ft:

gkyingkyin 2008-04-27 19:13

会不会和我取的这张图片有关系啊,要不我把我的图片传给超版试试?我怀疑是I(i,j)没赋上值


所有时间均为北京时间。现在的时间是 16:56

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