当前位置:千优问>百科知识>matlab中带有下标的赋值维度不匹配来自。

matlab中带有下标的赋值维度不匹配来自。

2023-03-26 03:04:01 编辑:leo 浏览量:621

matlab中带有下标的赋值维度不匹配来自。

问题补充说明:function E=fun(i1,n1,n2,G)i2=asin(n1*sin(i1)./(n2(1)+n2(2)*1i));rs=(n1*cos(i1)-(n2(1)+n2(2)*1i).*cos(i2))./(n1*cos(i1)+(n2(1)+n2(2)*1i).*cos(i2));rp=((n2(1)+n2(2)*1i).*cos(i1)-n1*cos(i2))./((n2(1)+n2(2)*1i).*cos(i1)+n1*cos(i2));g=(abs(rs)).^2/(abs(rp)).^2;E=sum((G-g).^2); i1=[1/36*pi:1/36*pi:17/36*pi]';n1=1;I2=asin(n1*sin(i1)./(-25+1.44*1i));Rs=(n1*cos(i1)-(-25+1.44*1i).*cos(I2))./(n1*cos(i1)+(-25+1.44*1i).*cos(I2));Rp=((-25+1.44*1i).*cos(i1)-n1*cos(I2))./((-25+1.44*1i).*cos(i1)+n1*cos(I2));G1=(abs(Rs)).^2/(abs(Rp)).^2;G=G1+normrnd(0,0.01,17,17);c=[1 1];options = optimset( 'MaxFunEvals',1e+20,'MaxIter',1e+20,'TolX',1e-12);[a,sfval,sexit,soutput]=fminsearch(@fun,c,options,i1,G)带有下标的赋值维度不匹配。出错 fminsearch (line 190)fv(:,1) = funfcn(x,varargin{:});

matlab中带有下标的赋值维度不匹配来自。

你是想优化一个什么参数?

看上去你要优化的参数c有360问答两个值,初值是1,1

好像是n2的两个值,那么定义优化函数的时候n2必须排第一个

然后n1,i1范杀光载响句略征律,G排在后面,顺序无所谓,但是最后调用的时候顺序要和定义的一样

最后,因为g和G都是17x17的矩阵,调歌富希正川甲协是二维的

求差平方和的时候要用两次sum

下面是改好的fun城结欢积女露娘函数内容

functionE=fun(n2,n1,i1,G)

i2=asin(n1*sin(i1)./(n2(1)+n2(2)*1i));

rs=(n1*cos(i1)-(n2(1)+n2(2)*1i).*cos(i2))./(n1*cos(i1)+(n2(1)+n2(2)*1i).*cos(i2));

rp=((n2(1)+n2(2)*1i).*cos(i1)-n1*cos(i2))./((n2(1)+n2(2)*1i).氢伟记染完稳双好胡奏*cos(i1)+n1*兵女热故见井钱父止选热cos(i2));

g露吸酒础计磁烈充能部=(abs(rs)).^2/(abs(rp)).^2;

E=sum(sum((G-g).^2));

下面是主程序内容

i1=[1/36*pi:1/36*pi:17/36*pi]';

n1=尽物教积临孔翻边费可1;

I2=asin(n1*sin(i罗两征孔静1)./(-25+1.44*1i));

Rs=(n1*cos(i1)-策证获多少道称商大使(-25+1.44验会*1i).*cos(I2))./(n1*cos(i1)+(-25+1.44*1i).*cos(I2));

R烧型板感p=((-25+1.44*1i).*cos(i1)-n1*cos(I2))./((-25+1.44*1i).*cos(i制认理良工1)+n1*cos(I2));

G1=(abs(Rs)).^2/(abs(Rp)).^2;

G=G1+normrnd(0,0.01,17,17);

c=[11];

options=optimset('MaxFunEvals',1e+20,'MaxIter',1e+20,'TolX',1e-12);

[a,sfval,sexit频品得相亲良过,soutput]=fmi氢下掉式终数nsearch(@fun,c,options,n1,i1信重喜号事整探跑才衡时,G)

标签:matlab,维度,赋值