matlab出错,Improper assignment with rectangular empty matrix.代码如下,function Y=evm(X)n=length(X);l=10;k=n/l;y1=ones(1,l);y2=ones(1,l);for i=1:l y1(i)=log(abs(max(X(i*k-k+1:i+k)))); y2(i)=log(abs(min(X(i*k-k+1:i+k))));endym1=mean(y1);ym2

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/30 03:10:30
matlab出错,Improper assignment with rectangular empty matrix.代码如下,function Y=evm(X)n=length(X);l=10;k=n/l;y1=ones(1,l);y2=ones(1,l);for i=1:l    y1(i)=log(abs(max(X(i*k-k+1:i+k))));    y2(i)=log(abs(min(X(i*k-k+1:i+k))));endym1=mean(y1);ym2
xO@{ٲB0f+_@/nXFVۂQdAa~댊5gzuЙ|Isis]?>ywܡM Yow\oc=SeYztܠ`g͏Eh)jjӳl* MsQ&TFls6r%t;WL_*ƅtCYS\ThW:L(HiY+SRk^ x1]p& oQu0[\i=KP2D8 Нk@Ǽy^ 2ŭ}2/sW܍;u?kRț h헽foxv\ܩ{kQ{A4͓^[U)>뭨wZP'-(p4hb焯t^ϼߋ7^HjReVyJbT,R+f40 "j6s(39i`w)/FI

matlab出错,Improper assignment with rectangular empty matrix.代码如下,function Y=evm(X)n=length(X);l=10;k=n/l;y1=ones(1,l);y2=ones(1,l);for i=1:l y1(i)=log(abs(max(X(i*k-k+1:i+k)))); y2(i)=log(abs(min(X(i*k-k+1:i+k))));endym1=mean(y1);ym2
matlab出错,Improper assignment with rectangular empty matrix.
代码如下,
function Y=evm(X)
n=length(X);
l=10;
k=n/l;
y1=ones(1,l);
y2=ones(1,l);
for i=1:l
y1(i)=log(abs(max(X(i*k-k+1:i+k))));
y2(i)=log(abs(min(X(i*k-k+1:i+k))));
end
ym1=mean(y1);
ym2=mean(y2);
s1=var(y1);
s2=var(y2);
a=pi/2/sqrt(6)*(1/s1+1/s2);
b=1-2/(1+exp(a*ym1-ym2));
Y=[a,b]; 提示错误是
? Improper assignment with rectangular empty matrix.
Error in ==> evm at 8
y1(i)=log(abs(max(X(i*k-k+1:i+k))));
大家看看是怎么回事.谢谢

matlab出错,Improper assignment with rectangular empty matrix.代码如下,function Y=evm(X)n=length(X);l=10;k=n/l;y1=ones(1,l);y2=ones(1,l);for i=1:l y1(i)=log(abs(max(X(i*k-k+1:i+k)))); y2(i)=log(abs(min(X(i*k-k+1:i+k))));endym1=mean(y1);ym2
y1(i)=log(abs(max(X(i*k-k+1:i+k))));
你这样写,肯定是会有问题的,
运行一段时间后,i*k-k+1会比i+k要大,就会出现上述的问题
看你的架势 每次是想取k个数中最大和最小的那个吧
改成如下即可:
for i=1:l
y1(i)=log(abs(max(X((i*k-k+1):(i*k)))));
y2(i)=log(abs(min(X((i*k-k+1):(i*k)))));
end