matlab错误使用 * 内部矩阵维度必须一致.

y=[54167 55196 56300 57482 58796 60266 61465 62780 64238 65346 66012 66207 66457 67295 69172 70499 72538 74206 76032 78198 80335 82542 84779 86727 88761 90409 91970 93267 94774 96159 97542 98705 100072 101645 103008 104357 105851 107507 109300 111026 112704 114333 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129998 130756 131448 132129 132802 133450 134091 134735 135404 136072 136782 137462]'
t=[1:71]'
b=[ones(1,71)]
z=log(y)-b.*log(y)
r=t./z;

1、出现《matlab错误使用 * 内部矩阵维度必须一致.》这个错误警告的原因是,y与t、b的数据个数不相等(不一致)(即,y为66个数据,而t、b为71个数据)

将t、b改为t=[1:66]'   ,b=[ones(1,66)];即可。

2、z表达式不应出现点运算符,这里是矩阵运算,而不是向量运算。

将z表达式中的点运算符去掉即可。

扩展资料:

常用函数

eye()创建对角元素为1,其他元素为0的矩阵

diag()根据向量创建对角矩阵,即以向量的元素为对角元素

magic() 创建魔方矩阵

rand()创建随机矩阵,服从均匀分布

randn()创建随机矩阵,服从正态分布

loglog: x轴和y轴均为对数刻度(Logarithmic scale)

semilogx: x轴为对数刻度,y轴为线性刻度

参考资料来源:百度百科-MATLAB

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-17

错误一:出现《matlab错误使用 * 内部矩阵维度必须一致.》这个错误警告的原因是,y与t、b的数据个数不相等(不一致)(即,y为66个数据,而t、b为71个数据)

措施一:将t、b改为t=[1:66]'   ,b=[ones(1,66)];

错误二:z表达式不应出现点运算符,这里是矩阵运算,而不是向量运算。

措施二:将z表达式中的点运算符去掉。

更改后的代码

y=[。。。]

t=[1:66]'

b=[ones(1,66)];

z=log(y)-b*log(y)

r=t./z;

运行上述代码,可以得到

本回答被网友采纳
第2个回答  2018-05-17
y和t矩阵中元素个数必须相同
相似回答