查看: 510|回复: 4|关注: 0

[已答复] 代码如何修改,实在是不会写了

[复制链接]

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
发表于 2019-12-14 17:15:37 | 显示全部楼层 |阅读模式
clc
clear
syms x
nhraw = input('请输入''nhraw'';');
nvraw = input('请输入''nvraw'';');
ndraw = input('请输入''ndraw'';');
nrraw = input('请输入''nrraw'';');
ground = input('请输入''ground'';');
nh = nhraw - ground;
nv = nvraw - ground;
nd = ndraw - ground;
nr = nrraw - ground;
h=[1;0];
v=[0;1];
d=[1/sqrt(2);1/sqrt(2)];
r=[1/sqrt(2);-1i/sqrt(2)];
w=[x(1),0;x(3)+1i*x(4),x(2)];
w1=[x(1),x(3)-1i*x(4);0,x(2)];
m=(w1*w)/trace(w1*w);
ph=h'*m*h*[1,1];
pv=v'*m*v*[1,1];
pd=d'*m*d*[1,1];
pr=r'*m*r*[1,1];
n=nh+nv;
x0=[1,1,1,1];
f='(n*ph-nh).^2/(2*n*ph)+(n*pv-nv).^2/(2*n*pv)+(n*pd-nd).^2/(2*n*pd)+(n*pr-nr).^2/(2*n*pr)';%函数方程
options=optimset('Display','final','TolFun',1e-8);
[x,fval,exitflag]=fmincon(f,x0,[],[],[],[],[],[],[],options)
(主要是为了得出最小值及取得最小值的参数的值)


错误信息
索引超出数组元素的数目(1)。
出错 sym/subsref (line 890)
            R_tilde = builtin('subsref',L_tilde,Idx);
出错 tg_1 (line 17)
w=[x(1),0;x(3)+1i*x(4),x(2)];
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

7

主题

1489

帖子

318

最佳答案
  • 关注者: 75
发表于 2019-12-15 09:45:46 | 显示全部楼层
将syms x
改为syms x [1 4]试试
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
 楼主| 发表于 2019-12-15 11:52:15 | 显示全部楼层
20141303 发表于 2019-12-15 09:45
将syms x
改为syms x [1 4]试试

错误使用 syms (line 265)
Invalid variable name.

出错 tg_1 (line 3)
syms x[1 4]
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

7

主题

1489

帖子

318

最佳答案
  • 关注者: 75
发表于 2019-12-15 12:56:25 | 显示全部楼层
不是syms x[1 4],是syms x [1 4]有空格
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
 楼主| 发表于 2019-12-15 13:03:21 | 显示全部楼层
试了,不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表