Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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 - Fatal编程技术网

用倒易矩阵算法编写MATLAB代码

用倒易矩阵算法编写MATLAB代码,matlab,matrix,Matlab,Matrix,我想用MATLAB为以下算法编写一个代码 **Input:** An square reciprocal matrix T = (tij) for (i, j = 1, 2, . . . , n), **Output:** A square reciprocal matrix C = (cij) for (i, j = 1, 2, . . . , n); 1: for i = 1; i < n; i ++ do 2: for j = i ; j < n; j ++

我想用MATLAB为以下算法编写一个代码

 **Input:** An square reciprocal matrix T = (tij) for (i, j = 1, 2, . . . , n),
 **Output:** A square reciprocal matrix C = (cij) for (i, j = 1, 2, . . . , n);
    1: for i = 1; i < n; i ++ do
    2: for j = i ; j < n; j ++ do
    3: cij = sqrt(tij /tji );
    4: cji = 1/cij ;
    5: end for
    6: end for
我在一篇论文中找到的答案是:

C = [...
     1  2    4  8;...
   0.50 1    2  4;...
   0.25 0.50 1  2;...
   0.13 0.25 0.50 1]
到目前为止,我已经尝试了以下代码,但我不确定。我找不到上面C的确切答案。有什么想法或帮助吗

C=zeros(n,n);
for i = 1:n 
    for j = i:n            
            C(i,j) = sqrt(T(i,j)/T(j,i)); 
            C(j,i) = 1/C(i,j) ;  
           
    end
end
C;

结果有什么不同?代码似乎实现了该算法。也许你的预期结果不正确?也许算法不正确?@Cris Luengo我用我的代码得到的结果是:C=[1.0000 1.9803 3.9943 7.8554;0.5050 1.0000 2.0002 3.9996;0.2504 0.5000 1.0000 1.9975;0.1273 0.2500 0.5006 1.0000];我们在谈论Matlab,对吗?这很容易,因为C=sqrt(T./T.))看起来您已经足够接近了,您正遭受浮点舍入错误的困扰。请参阅此处:-您的输入矩阵可能不精确,可能需要四舍五入到两位小数才能显示。
C=zeros(n,n);
for i = 1:n 
    for j = i:n            
            C(i,j) = sqrt(T(i,j)/T(j,i)); 
            C(j,i) = 1/C(i,j) ;  
           
    end
end
C;