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

Matlab 将矩阵提升为幂的尺寸不正确

Matlab 将矩阵提升为幂的尺寸不正确,matlab,Matlab,这是我的密码: x = 60: 95; r11 = 0.93; E1=13.5; F1=0.00529; G1=0; H1=1; k11=60; k12=0; uid = 10^-7*1.31275 * exp(0.145961 * x ); P = exp(-F1 * ((x-k11)^2) - G1*(x-k12)); fi= E1 * P + H1; y1 = r1 * fi * uid; plot(x,y1); 我的错误是: 使用^51行时出错 将矩阵提升为幂的尺寸不正确。检查矩阵是否

这是我的密码:

x = 60: 95;
r11 = 0.93;
E1=13.5;
F1=0.00529;
G1=0;
H1=1;
k11=60;
k12=0;
uid = 10^-7*1.31275 * exp(0.145961 * x );
P = exp(-F1 * ((x-k11)^2) - G1*(x-k12));
fi= E1 * P + H1;
y1 = r1 * fi * uid;
plot(x,y1);
我的错误是:

使用^51行时出错 将矩阵提升为幂的尺寸不正确。检查矩阵是否为正方形,幂是否为标量。要执行元素矩阵幂,请使用“^”

ui12第16行出错 P=exp-F1*x-k11^2-G1*x-k12


该错误涉及代码段x-k11^2,其中从数组x 1x36中减去标量k11,然后尝试将结果平方。问题在于,函数^是函数mpower的捷径,mpower是矩阵幂函数,因此需要按其本质进行标量或矩阵计算

x^2 == x*x
x^3 == x*x*x
但是,它不知道如何处理数组,因为x*x不起作用try-do-run-rand1,36*rand1,36,这实际上会引发相同的错误。 它还提出了一个解决方案:.^,这是元素的幂函数,实际上是。在算术运算中,通常表示以下运算是按元素进行的。这是正常幂函数的快捷方式,正如您最初所期望的那样。它对数组x的每个元素执行^2运算

扩展侧注: 为了模拟元素运算符的行为,您可能需要查看arrayfun函数,它将特定函数应用于矩阵或数组/向量的每个元素。如果你是一个新的matlab,正如我从你的问题中假设的那样,这个提示可能会让你困惑

x.^2 == arrayfun(@(a)mpower(a,2),x)

请在发布问题之前进行基本搜索。将你的问题标题复制粘贴到谷歌上,得到链接的问答作为第一个答案。我甚至可以肯定,当你输入问题时,你会看到链接。
x.^2 == arrayfun(@(a)mpower(a,2),x)