永发信息网

matlab错误 Error using ==> mpower Inputs must be a scalar and a square matrix

答案:2  悬赏:10  手机版
解决时间 2021-01-13 06:22
matlab错误 Error using ==> mpower Inputs must be a scalar and a square matrix
最佳答案
楼上的回答正确,但没有解释出错的原因,对于初学者而言,虽然解决了眼下的问题,但以后仍然可能犯类似的错。

首先,楼主可能会感到困惑的是,自己的表达式中并没有mpower这个符号,为什么会报
Error using ==> mpower
这样的错误?其实,用
help mpower
查阅该函数的参考信息,可以知道mpower是矩阵幂函数(Matrix power),对应的符号就是“^”,而这个符号在楼主的表达式中。

这里,要顺便做一点背景性的介绍:MATLAB中的运算符其实都有对应的函数,例如,“^”对应mpower,“*”对应mtimes,“/”对应mrdivide,等等。可以用
help ops
查看关于运算符更详细的列表。

上面说到的几个运算符对应的函数都以m开头,含义是,这几个运算符所做的都是矩阵运算,即按照矩阵运算规则进行运算。和矩阵运算相对的,还有一类运算,叫做数组运算,也就是通常所说的“点运算”,其规则是按照逐个元素对应进行运算,例如“.*”就是两个相同维数的数组相应位置的元素相乘得到结果。点运算主要包括以下几个:
.* 数组乘,对应函数为times;
./ 数组右除,对应函数为rdivide;
.\ 数组左除,对应函数为ldivide;
.^ 数组幂,对应函数为power;
.' 转置,对应函数为transpose(如果不加点,即“'”,表示共轭转置)

有了上面这些背景知识,楼主应该知道为什么会出错以及怎样修改了。表达式里面的T是数组,而楼主的计算显然是希望对每个元素进行的(element-wise),所以部分运算符应该改成点运算。涉及到的运算符包括三个“^”,一个“*”和一个“/”,改过来就好了:
F=1./(1-(1-(0.05-3*1.2*10^(-5)*(1-0.05)*(T-20))).^0.8+(1-0.005-3*1.2*10^(-5)*(1-0.005)*(T-20)).^0.4.*(0.045226-3*1.2*10^(-5)*(1-0.045226)*(T-20)).^2);

最后,不知道楼主会不会有这样的疑问:表达式中,“/”出现在“^”之前,为什么不报右除号的错误,而是报了幂运算的错误呢?这是因为,表达式的除号右边是一个括号,要进行除运算,首先要把括号里的值算出来,而计算括号里面的值首先会遇到的就是“^”。
全部回答
改为
F=1./(1-(1-(0.05-3*1.2*10^(-5)*(1-0.05)*(T-20))).^0.8+(1-0.005-3*1.2*10^(-5)*(1-0.005)*(T-20)).^0.4.*(0.045226-3*1.2*10^(-5)*(1-0.045226)*(T-20)).^2);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
Q名可以叫什么
“对比句”是什么?怎样写对比句?
单选题为探索月球上是否有生命存在的迹象,首
北京西到渭南23号的火车票
移动宽带有5O兆的吗
2000年06月10日出生,那身份证编号是什么?
人类随着社会发展逐渐变得无意识作文
VR线该怎样看?
求高手推荐像Ein und Alles 或者是so wie ich
吴磊在《奇星记之鲜衣怒马少年时》中饰演谁?
酷睿i34160可以玩正当防卫3最低配置吗?
紫禁城网咖地址有知道的么?有点事想过去!
小王:从举办奥运会的巨额耗费来看,观看各场
0.6平方米等于多少平方厘米
in a world 与in the world有什么区别
推荐资讯
如何理解第五段心随境转是凡夫,境随心转是圣
分辨率是800x600那请问宽高比怎么设置?
告诉我这到底是卧蚕还是眼袋,为什么,本人近
如何维修人体电子称体重秤的常见问题
K1614次列车12号车厢还有座位吗?
胸罩C34算大吗?请快告诉我!!谢谢
问个无聊问题:CPU消耗的电能是不是基本全
含有一朝的诗句
有没有db2直接生成word文档数据字典的工具,
什么树叶是白色的
从广东快递一条烟来,被烟草局查扣了,烟草局
广西喷施宝叶面肥怎样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?