| 查看: 997 | 回复: 3 | ||
小鱼118银虫 (小有名气)
|
[求助]
求助MATLAB画图,二维曲线,总是出错,求助高手
|
|
i=1; lamda=0.0019; l=14; n=1.44; l1=5; h=l/2/n; l2=10; l3=45; d1=l1+h; d2=l2+h; R2=300; for f=1:0.1:1000 %热透镜焦距取值范围 M=[1,d1;0,1]*[1,0;0,1]*[1,d1;0,1]*[1-h/f,2*h-h*h/f;-1/f,1-h/f]*[1,d2;0,1]*... [1,0;0,1]*[1,l3;0,1]*[1,0;-2/R2,1]*[1,l3;0,1]*[1,0;0,1]*[1,d2;0,1]*... [1-h/f,2*h-h*h/f;-1/f,1-h/f]; A=M(1,1); B=M(1,2); C=M(2,1); D=M(2,2); N=[1,d2;0,1]*[1,0;0,1]*[1,l3;0,1]*[1,0;-2/R2,1]*[1,l3;0,1]*[1,0;0,1]*... [1,d2;0,1]*[1-h/f,2*h-h*h/f;-1/f,1-h/f]*[1,d1;0,1]*[1,0;0,1]*... [1,d1;0,1]*[1-h/f,2*h-h*h/f;-1/f,1-h/f]; a=N(1,1); b=N(1,2); c=N(2,1); d=N(2,2); if(abs((A+D)/2)<=1) w01(i)=abs((2*lamda*B)/(pi*sqrt(4-(A+D)^2)))^(1/2); w02(i)=abs((2*lamda*b)/(pi*sqrt(4-(a+d)^2)))^(1/2); y(i)=f; i=i+1; end end wp=0.4; plot(y,w01,y,w02,y,wp) MATLAB运行结果为 ??? Error using ==> plot Vectors must be the same lengths. |
» 猜你喜欢
深圳大学2026年秋博士招生-物理学-活性胶体方向-高永祥课题组
已经有18人回复
论物质与能量的统一模型及物理现象解释
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有278人回复
基于基元I统一理论的数学相关应用推导
已经有0人回复
基元I统一理论:宇宙本质、层级演化与修炼文明的本源规律
已经有1人回复
基元I理论下三大核心空间现象精准推导与细节解析
已经有0人回复
基于基元 I 统一理论的反重力理论推导
已经有0人回复
基于基元I统一理论的量子力学本源推导
已经有1人回复
推荐一款可以AI辅助写作的Latex编辑器SmartLatexEditor,超级好用,AI润色,全免费
已经有17人回复
【EI|Scopus 双检索】第六届智能机器人系统国际会议(ISoIRS 2026)
已经有0人回复
2026年第四届电动车与车辆工程国际会议(CEVVE 2026)
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab画图求助
已经有11人回复
继续求助Matlab绘图!
已经有8人回复
Matlab画图求助? (有人说, 标题一定要长------------------------->)
已经有5人回复
求助matlab三维画图中:Inner matrix dimensions must agree.
已经有4人回复
求助matlab画图问题
已经有3人回复
求助:谁会用matlab画图?
已经有13人回复
【求助】matlab 绘图问题
已经有16人回复
【求助】MATLAB多个mat中 数据画图问题
已经有7人回复
【求助】matlab 遗传算法工具箱绘图命令是什么?
已经有6人回复
【求助】请教Matlab高手根据积分画图问题
已经有4人回复
【求助】如何采用Matlab绘制电子云密度图
已经有8人回复


2楼2012-10-09 15:14:26
小鱼118
银虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 5795.5
- 散金: 51
- 红花: 4
- 帖子: 206
- 在线: 161.5小时
- 虫号: 1134404
- 注册: 2010-10-29
- 性别: MM
- 专业: 光学

3楼2012-10-09 17:26:43
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小鱼118: 金币+10, ★★★★★最佳答案, 画图成功了,谢谢高手! 2012-10-10 09:00:32
dbb627: 金币+2, 谢谢应助! 2012-10-10 17:06:07
小鱼118: 金币+10, ★★★★★最佳答案, 画图成功了,谢谢高手! 2012-10-10 09:00:32
dbb627: 金币+2, 谢谢应助! 2012-10-10 17:06:07
|
我改了一下你原来的程序,w01和w02以及y都给了初始长度10000,循环结束后取出其中的有效长度绘图。你运行一下试试,另外C和c的值在程序中没有使用。 i=1; lamda=0.0019; l=14; n=1.44; l1=5; h=l/2/n; l2=10; l3=45; d1=l1+h; d2=l2+h; R2=300; w01=zeros(1,10000); w02=zeros(1,10000); y=zeros(1,10000); for f=1:0.1:1000 %热透镜焦距取值范围 M=[1,d1;0,1]*[1,0;0,1]*[1,d1;0,1]*[1-h/f,2*h-h*h/f;-1/f,1-h/f]*[1,d2;0,1]*... [1,0;0,1]*[1,l3;0,1]*[1,0;-2/R2,1]*[1,l3;0,1]*[1,0;0,1]*[1,d2;0,1]*... [1-h/f,2*h-h*h/f;-1/f,1-h/f]; A=M(1,1); B=M(1,2); D=M(2,2); N=[1,d2;0,1]*[1,0;0,1]*[1,l3;0,1]*[1,0;-2/R2,1]*[1,l3;0,1]*[1,0;0,1]*... [1,d2;0,1]*[1-h/f,2*h-h*h/f;-1/f,1-h/f]*[1,d1;0,1]*[1,0;0,1]*... [1,d1;0,1]*[1-h/f,2*h-h*h/f;-1/f,1-h/f]; a=N(1,1); b=N(1,2); d=N(2,2); if abs((A+D)/2)<=1 w01(i)=abs((2*lamda*B)/(pi*sqrt(4-(A+D)^2)))^(1/2); w02(i)=abs((2*lamda*b)/(pi*sqrt(4-(a+d)^2)))^(1/2); y(i)=f; i=i+1; end end w01n=w01(1:i-1); w02n=w02(1:i-1); yn=y(1:i-1); wp=0.4*ones(1,i-1); plot(yn,w01n,yn,w02n,yn,wp) |

4楼2012-10-09 18:15:51













回复此楼