Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中的除法给出的值接近于零_Matlab_Matrix_Division - Fatal编程技术网

Matlab中的除法给出的值接近于零

Matlab中的除法给出的值接近于零,matlab,matrix,division,Matlab,Matrix,Division,我有以下代码从文件加载位图,该文件是256x256像素的灰度图像: a = imread('E:\images\pic1.bmp'); a = double(a(:, :, 1)); figure; imagesc(abs(a)); colormap(gray); axis off; axis equal; title('Input image'); rpm1 = exp(i * 2 * pi * rand(256)); theta1 = 2 * pi * rand(256); Iprim

我有以下代码从文件加载位图,该文件是256x256像素的灰度图像:

a = imread('E:\images\pic1.bmp');
a = double(a(:, :, 1));

figure;
imagesc(abs(a));
colormap(gray);
axis off; 
axis equal;
title('Input image');

rpm1 = exp(i * 2 * pi * rand(256));
theta1 = 2 * pi * rand(256);
Iprime1 = fft2((sqrt(a) .* rpm1));
A = abs(Iprime1);
phi1 = angle(Iprime1);

W = A / 2;
Q = cos(phi1 - theta1);
T = W ./ Q
当我在Matlab中检查输出
T
时,它是一个包含0.0000到0.0009范围内的值的矩阵。 但是,当我分别显示
W
Q
并为单个元素手动计算
T
时,它将显示为非零值


我遗漏了什么?

T=W./Q
按元素进行除法,即
T(1,1)=W(1,1)/Q(1,1)
,所以在W为零的地方,T应该为零……什么是
grt()
?我们不知道它返回什么,因此无法真正检查您的问题。对不起…grt是回转器变换…为了通用性,它可以用fft2(即二维傅立叶变换)代替。即使使用fft2,我也得到相同的结果@Roberts-Tettler矩阵W只有很少的零。。。。因此,毫无疑问,整个矩阵T将变为零,您希望看到什么输出(即手动计算的结果)?更重要的是,你到底想实现什么?我真的不理解你的问题,只需一步一步地浏览代码,看看值在哪里变为零或inf或非常高(对于Q矩阵条目)。部门本身不会造成任何问题