| 查看: 4220 | 回复: 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; 跪求大神解惑。。。 |
» 猜你喜欢
国家级人才课题组招收2026年入学博士
已经有3人回复
青年基金C终止
已经有4人回复
青椒八年已不青,大家都被折磨成啥样了?
已经有7人回复
为什么nbs上溴 没有产物点出现呢
已经有10人回复
救命帖
已经有11人回复
招博士
已经有5人回复
26申博求博导推荐-遥感图像处理方向
已经有4人回复
限项规定
已经有7人回复
西南交通大学国家级人才团队2026年博士研究生招生(考核制)—机械、材料、力学方向
已经有3人回复
英文综述是否需要润色及查重
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
求助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
- 金币: 18197.2
- 红花: 97
- 帖子: 8891
- 在线: 1487.4小时
- 虫号: 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 中的元素数目必须相同。
回复此楼