使用mpower矩阵的错误必须是正方形

时间:2014-04-13 18:48:19

标签: matlab

为什么我的以下代码"代码段"运行?显示的错误消息是

??? Error using ==> mpower
Matrix must be square.

Error in ==> SolverDEqnsBoth at 112
x_1 = sqrt((a_33)^2+4.*a_13.*a_31);

注意:"妈妈"是一个常数。

x=linspace(0,50,100);
y = zeros(1,length(x));
for i = 1:length(x)
    h_5 = 184544783/4620170000;
    h_4 = (221/1483363330625).*y; 
    h_3 = (1887/12500).*y;
    h_2 = 359187209/4620170000;
    h_1 = 91999/231008500000000000;
    a_13 = (91999/231008500000000000)./x; 
    a_31 = 18606379625340700000/11891636430654839; 
    a_32 = 92403400000/33107071;
    a_33 = (7/500).*x;
    x_1 = sqrt((a_33)^2+4.*a_13.*a_31);
    x_2 = (a_33 + x_1)./2;
    x_3 = (x_2).^2;
    x_4 = (x_3).*h_5.*mum;
    y(i)=((x_4)./((1887/12500).*(221/1483363330625)))^(0.5);
end

我的意思是,我知道为什么它没有运行(x_1不是方阵,所以不能取平方根) - 但是如何解决它?

1 个答案:

答案 0 :(得分:0)

a_33是一个1x100矢量,你不能使用mpower(矩阵功率)对它进行平方。如果您想要使用每个元素的强大功能,请使用a_33.^2

此外:您正在使用循环,但i对计算没有影响,我猜您的代码存在根本性的错误。