登录论坛

查看完整版本 : 求助:关于矩阵运算中得0的问题??


gkyingkyin
2008-04-27, 17:54
我编的一个程序中

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)没赋上值

shiqiang
2008-04-27, 19:24
加我QQ。306653819