| 查看: 4569 | 回复: 10 | |||
[求助]
求助matlab for循环中的赋值问题。 已有2人参与
|
|||
|
dm=0.001*2*pi*c; w=-0.5*2*pi*c:dm:0.5*2*pi*c; Kx=zeros(size(w)); Ay=zeros(size(w)); for m=1:length(w); syms ay kx ky; y=(0.0382*8*(pi^3)*(c^4)*sqrt(ainf-(wp.^2)./(w.^2)))./((wp^2).*w); axx=ainf*((1-(wp*(w+1i*y)*wp))./(w.*(((w+1i*y).^2)-((wc)^2)))); %无单位 axy=ainf*(((wp^2)*wc*1i)./(w.*(((w+y*1i).^2)-((wc)^2)))); %无单位 azz=ainf.*((1-(wp^2))./(w.*(w+1i*y))); %无单位 a1=real(axx); a2=imag(axx); a3=real(axy); a4=imag(axy); a5=real(azz); a6=imag(azz); f1=ay-sqrt((kx.^2)-((w./c).^2)); f2=kx-((sqrt(((a4.*ay./2).^2))+(a1.*(w./c).^2)-((a1.*ay.*ky)./(tan(ky.*t))))-(a4.*ay./2)); f3=ky-(sqrt((((w./c).^2).*(a1-((a4.^2)./a1)))-kx.^2)); [kx,ay]=solve('f1','f2','f3'); Kx(m)=kx; Ay(m)=Ay; end 运行提示:在赋值 A( = B 中,A 和 B 中的元素数目必须相同。出错行数: Kx(m)=kx; Ay(m)=Ay; 跪求大神解惑。。。 |
» 猜你喜欢
今天系统多次维护,明天很可能放榜!
已经有5人回复
欢迎发来filecode的Mz6后的代码验证其规律
已经有74人回复
岩土工程学报什么时候才能终审完呐
已经有4人回复
时间戳又变了8-15
已经有25人回复
2027广东省杰青
已经有6人回复
快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。
已经有3人回复
哪位老哥知道今年的国自然具体哪一天放榜?
已经有9人回复
咱们一起用铁证分析2026国家社科基金中标与否
已经有26人回复
我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人
已经有16人回复
有时候,自然基金真的不能太认真 (我的申报经验)
已经有12人回复
» 本主题相关价值贴推荐,对您同样有帮助:
求助MATLAB编程
已经有8人回复
求助matlab写变限积分
已经有4人回复
求助Matlab
已经有0人回复
求助matlab图像
已经有0人回复
求助matlab求解三元超越方程
已经有4人回复
求助matlab三维图纠正程序
已经有2人回复
求助matlab有限差分程序
已经有1人回复
求助matlab写循环
已经有6人回复
求助MATLAB画图,二维曲线,总是出错,求助高手
已经有3人回复
matlab求助
已经有4人回复
Matlab求助
已经有6人回复
求助matlab问题
已经有5人回复
求助matlab程序
已经有3人回复
求助matlab问题
已经有5人回复
高金求助matlab解微分方程组
已经有12人回复
求助matlab程序
已经有4人回复
求助matlab积分的问题
已经有4人回复
matlab求助
已经有1人回复
2楼2016-09-16 13:07:16
guokeqin
金虫 (正式写手)
- 应助: 14 (小学生)
- 金币: 5441.2
- 红花: 6
- 帖子: 823
- 在线: 118.4小时
- 虫号: 1938806
- 注册: 2012-08-14
- 性别: GG
- 专业: 光学
6楼2016-09-17 06:57:58
3楼2016-09-16 14:43:59
4楼2016-09-16 15:38:26
FMStation
至尊木虫 (知名作家)
- 应助: 591 (博士)
- 贵宾: 0.03
- 金币: 18701.7
- 红花: 97
- 帖子: 8891
- 在线: 1493.2小时
- 虫号: 2400059
- 注册: 2013-04-04
- 专业: 计算机应用技术
【答案】应助回帖
感谢参与,应助指数 +1
|
https://www.mathworks.com/help/symbolic/solve.html Return Numeric Solutions Try solving the following equation. The symbolic solver cannot find an exact symbolic solution for this equation, and therefore issues a warning before calling the numeric solver. Because the equation is not polynomial, an attempt to find all possible solutions can take a long time. The numeric solver does not try to find all numeric solutions for this equation. Instead, it returns only the first solution it finds. |
5楼2016-09-16 21:56:31
|
我把点乘去掉显示: 在赋值 A( = B 中,A 和 B 中的元素数目必须相同。我重新编了一下solve的公式: kx=solve(tan(t*(((sqrt(((w(m)/c)^2)*(a1-((a4^2)/a1)))))-(kx^2)))==(a1*sqrt(((w(m)/c)^2)*(a1-((a4^2)/a1))-(kx^2))*sqrt((kx^2)-((w(m)/c)^2)))/((a1*((w(m)/c)^2))-(kx^2)-(a4*kx*sqrt((kx^2)-((w(m)/c)^2)))),kx); 但是在kx赋值到Kx的时候出现错误,另外,solve语句单独拿出来进行计算的时候会出现警告: 警告: Cannot solve symbolically. Returning a numeric approximation instead. 这个时候我能输出kx。很疑惑。 |
7楼2016-09-17 22:28:39
|
大神,这个我了解了,所以尝试把solve语句修改了一下,单独计算kx=solve(tan(t*(((sqrt(((w/c)^2)*(a1-((a4^2)/a1)))))-(kx^2)))==(a1*sqrt(((w/c)^2)*(a1-((a4^2)/a1))-(kx^2))*sqrt((kx^2)-((w/c)^2)))/((a1*((w/c)^2))-(kx^2)-(a4*kx*sqrt((kx^2)-((w/c)^2)))),kx);时,现出现警告: 警告: Cannot solve symbolically. Returning a numeric approximation instead. 这个时候能输出kx的数值解,所以我就比较疑惑为什么有数值解还不能赋值成功。。。 |
8楼2016-09-17 22:31:36
|
我把方程组进行处理,整理成一个公式进行计算,代码如下: clear; clc; a0=8.85*1e-12; %c2/m2N ainf=12.37; %极限高频相对介电常数 无单位 %y=pi*1e11; %衰减频率 hz B=3; %磁场强度 T或kg/As2 %T=185; %温度 K t=1.361*1e-6; %厚度 m e=1.6*1e-19; %单位电荷量 C me=9.11*1e-31; %电子质量 kg m=0.033*me; %载流子质量 kg N=8*1e23; c=3e8; %N=(5.76*1e20)*(T^1.5)*exp(-(0.13/((8.625*1e-5)*T))); %载流子浓度 m-3 此处的0.0151为KB*T KB为玻尔兹曼常数8.625e-5 eV/K,所以0.0151单位为eV wc=e*B/m; %回旋频率 rad/s wp=sqrt(N*(e^2)/(a0*m)); %等离子频率 rad/s %w=0:pi*2*(2*(1e12))/1000:pi*2*2*(1e12); %定义频率范围 rad/s %w=1.21*2*pi*1e12; dm=0.0001*2*pi*c; w=0.4*2*pi*c:dm:0.5*2*pi*c; Kx=zeros(size(w)); Ay=zeros(size(w)); for m=1:length(w); syms kx; y=(0.0382*8*(pi^3)*(c^4)*sqrt(ainf-(wp.^2)./(w(m).^2)))./((wp^2).*w(m)); axx=ainf*((1-(wp*(w(m)+1i*y)*wp))./(w(m).*(((w(m)+1i*y).^2)-((wc)^2)))); %无单位 axy=ainf*(((wp^2)*wc*1i)./(w(m).*(((w(m)+y*1i).^2)-((wc)^2)))); %无单位 azz=ainf.*((1-(wp^2))./(w(m).*(w(m)+1i*y))); %无单位 a1=real(axx); a2=imag(axx); a3=real(axy); a4=imag(axy); a5=real(azz); a6=imag(azz); kx=solve(tan(t*(((sqrt(((w(m)/c)^2)*(a1-((a4^2)/a1)))))-(kx^2)))==(a1*sqrt(((w(m)/c)^2)*(a1-((a4^2)/a1))-(kx^2))*sqrt((kx^2)-((w(m)/c)^2)))/((a1*((w(m)/c)^2))-(kx^2)-(a4*kx*sqrt((kx^2)-((w(m)/c)^2)))),kx); A=char(kx); Kx(m)=A; end 显示: 在赋值 A( = B 中,A 和 B 中的元素数目必须相同。出错 yanzheng (line 38) Kx(m)=A; 。。。。。 |
9楼2016-09-17 22:34:08
czcdxmc
木虫 (正式写手)
MEMS小学生
- 应助: 13 (小学生)
- 金币: 5212.9
- 散金: 70
- 红花: 8
- 帖子: 845
- 在线: 101.7小时
- 虫号: 2088420
- 注册: 2012-10-26
- 性别: GG
- 专业: 半导体微纳机电器件与系统

10楼2016-09-18 08:17:15










= B 中,A 和 B 中的元素数目必须相同。
回复此楼