首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用MATLAB和Python规范函数得到不同的答案

用MATLAB和Python规范函数得到不同的答案
EN

Stack Overflow用户
提问于 2014-10-31 17:35:00
回答 3查看 4.8K关注 0票数 2

在比较MATLAB和Python函数时,我得到了关于简单矩阵规范的两个截然不同的答案。

代码语言:javascript
运行
复制
R =

    0.9940    0.0773   -0.0773
   -0.0713    0.9945    0.0769
    0.0828   -0.0709    0.9940

然后在MATLAB中:

代码语言:javascript
运行
复制
>> norm(R)

ans =

     1

但在Python里

代码语言:javascript
运行
复制
from scipy.linalg import norm
import numpy as np

print norm(R),np.linalg.norm(R)

1.73205080757 1.73205080757

哪里

代码语言:javascript
运行
复制
print scipy.__version__,np.__version__
0.14.0 1.9.0

我是怎么把事情搞砸的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-31 17:36:58

Python正在返回Frobenius规范。您可以通过以下方法在MATLAB中完成这一任务:

代码语言:javascript
运行
复制
>> norm(R,'fro')
ans =
          1.73203140271763

默认情况下,norm给出了2-范数(norm(R,2)).

票数 6
EN

Stack Overflow用户

发布于 2014-10-31 17:41:03

要么在MATLAB中这样做:

代码语言:javascript
运行
复制
>> norm(R,'fro')

或者在Python中:

代码语言:javascript
运行
复制
>>> np.linalg.norm(R,2)
票数 5
EN

Stack Overflow用户

发布于 2014-10-31 17:41:12

Matlab默认的矩阵范数是2-范数,而numpy是矩阵的Frobenius范数的默认值。显式地指定规范应该会为您修复它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26680412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档