matlab 作图法解题时是否有解题过程

matlab画图,如何把原始图的部分放大后放在原图上? - 饮水思源
饮水思源 - 主题文章阅读  [讨论区: MathTools]本主题共有 5 篇文章,分 1 页, 当前显示第 1 页 []
[][] 发信人: (@#!), 信区: MathTools
题: matlab画图,如何把原始图的部分放大后放在原图上?
发信站: 饮水思源 (日16:26:08 星期一)
matlab画了一个图,*.figure
但是想把图中多个曲线直接很密集的部分 放大, 作为对原图的清晰的解释
然后,把该放大的其中部分 贴在原图 的 对于部分的 附近。
如何操作?
感谢阅读。
期待回复。
※ 来源:?饮水思源 bbs.?[FROM: 121.248.10.108]
[][] 发信人: jacklzj (欢迎来MathTools~~~), 信区: MathTools
题: Re: matlab画图,如何把原始图的部分放大后放在原图
发信站: 饮水思源 (日16:37:45 星期一)
好像matlab没有命令可以这么做的。
简单的方法就是先打开这个fig文件,然后保存一张图片,bmp或者jpg格式
然后在这个fig文件点放大镜,放大到合适倍数,然后在保存bmp或者jpg
然后用画图板或者photoshop组合两张图片吧
【 在 sjtxiaoshizi 的大作中提到: 】
: matlab画了一个图,*.figure
: 但是想把图中多个曲线直接很密集的部分 放大, 作为对原图的清晰的解释
: 然后,把该放大的其中部分 贴在原图 的 对于部分的 附近。
: 如何操作?
: 感谢阅读。
: 期待回复。
讨论数学软件的使用、编程、下载、安装
迎光临4区MathTools板
Matlab Mathematic Maple......
来如流水兮逝如风,不知何处来兮何所终
※ 来源:?饮水思源 bbs.?[FROM: 202.120.45.82]
[][] 发信人: (@#!), 信区: MathTools
题: Re: matlab画图,如何把原始图的部分放大后放在原图
发信站: 饮水思源 (日16:41:18 星期一)
是。谢谢。
但是在画图等软件里面组合这2个图,需要copy, Ctrl + C
如此,粘帖的 图片不是很清楚,有些黑糊糊的
【 在 jacklzj 的大作中提到: 】
: 好像matlab没有命令可以这么做的。
: 简单的方法就是先打开这个fig文件,然后保存一张图片,bmp或者jpg格式
: 然后在这个fig文件点放大镜,放大到合适倍数,然后在保存bmp或者jpg
: 然后用画图板或者photoshop组合两张图片吧
: 【 在 sjtxiaoshizi 的大作中提到: 】
: : matlab画了一个图,*.figure
: : 但是想把图中多个曲线直接很密集的部分 放大, 作为对原图的清晰的解释
: : 然后,把该放大的其中部分 贴在原图 的 对于部分的 附近。
: : 如何操作?
: : 感谢阅读。
: : 期待回复。
※ 来源:?饮水思源 bbs.?[FROM: 121.248.10.108]
[][] 发信人: jacklzj (欢迎来MathTools~~~), 信区: MathTools
题: Re: matlab画图,如何把原始图的部分放大后放在原图
发信站: 饮水思源 (日16:57:51 星期一)
听说编辑矢量图(eps等格式)图形不会失真。但是我没有尝试过。
或者你直接用截图软件,按照你需要的大小1:1复制黏贴吧。可能会好点
【 在 sjtxiaoshizi 的大作中提到: 】
: 是。谢谢。
: 但是在画图等软件里面组合这2个图,需要copy, Ctrl + C
: 如此,粘帖的 图片不是很清楚,有些黑糊糊的
: 【 在 jacklzj 的大作中提到: 】
: : 好像matlab没有命令可以这么做的。
: : 简单的方法就是先打开这个fig文件,然后保存一张图片,bmp或者jpg格式
: : 然后在这个fig文件点放大镜,放大到合适倍数,然后在保存bmp或者jpg
: : 然后用画图板或者photoshop组合两张图片吧
讨论数学软件的使用、编程、下载、安装
迎光临4区MathTools板
Matlab Mathematic Maple......
来如流水兮逝如风,不知何处来兮何所终
※ 来源:?饮水思源 bbs.?[FROM: 202.120.45.82]
[][] 发信人: (@#!), 信区: MathTools
题: Re: matlab画图,如何把原始图的部分放大后放在原图
发信站: 饮水思源 (日18:05:56 星期一)
plot(t,sin(t));
xlim([0,2*pi]);
axes('position',[0.55,0.55,0.3,0.3]);
plot(t,cos);
xlim([0,2*pi]);
【 在 jacklzj 的大作中提到: 】
: 听说编辑矢量图(eps等格式)图形不会失真。但是我没有尝试过。
: 或者你直接用截图软件,按照你需要的大小1:1复制黏贴吧。可能会好点
: 【 在 sjtxiaoshizi 的大作中提到: 】
: : 是。谢谢。
: : 但是在画图等软件里面组合这2个图,需要copy, Ctrl + C
: : 如此,粘帖的 图片不是很清楚,有些黑糊糊的
※ 来源:?饮水思源 bbs.?[FROM: 121.248.10.108]
本主题共有 5 篇文章,分 1 页, 当前显示第 1 页 [][][]君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
数学建模matlab中作图的程序方法
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
数学建模matlab中作图的程序方法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口会用Matlab作图的进来看看_高等数学吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:212,268贴子:
会用Matlab作图的进来看看收藏
有谁能告诉我这个用matlab怎么作图 ,求编写程序
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或matlab 画图与解方程
matlab 画图与解方程
发表评论:
TA的最新馆藏[转]&[转]&小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
MATLAB中运算过程中的数据保存以及作图
有如下两个问题请教大家,谢谢先!
1、求解非线性方程ax^3+bx^2+cx+d=0,我用的是matlab自带的roots函数,但是将求解结果代入回原方程后发现方程的最终结果的方次在10^-12左右,远大于eps,这样是否表示方程的求解很不准确?
2、先求y,然后求出对应的x跟z。我的程序中,一个VV对应于3个y值,由于y有三组解,x跟z也同样有3组解一一对应。我想将程序中的3个z值都保存下来,分别与之前的VV一一对应作图,最后应该出来一个呈S型曲线的图。想问问怎么保存数据还有怎么作图?
以下是我自己写的程序,可能有点繁琐。麻烦大家帮帮忙了
format long
syms k1 k01 VV&&% z=dφ/dt
for i=1:1:40
& & VVstep=0.0002;& && &&&%VV代表电极电势φ
& & VVfinal=0.0160;
& & VV=0.008+VVstep*i
& & k1=150*exp(19.462*VV);
& & k01=150*exp(-19.462*VV);
& & equation_a=k01*200;
& & equation_b=-(5*k1+);
& & equation_c=2*5*k1+;
& & equation_d=-5*k1;
& & Coefficient=
& & temp=roots(Coefficient)
& & equation_y01=temp(1)
& & equation_x01=(200*equation_y01^2-200*equation_y01+50)/5
& & equation_z01=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y01)^2-k01*equation_x01*equation_y01)/(10*10^(-10))
& & equation_y02=temp(2)
& & equation_x02=(200*equation_y02^2-200*equation_y02+50)/5
& & equation_z02=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y02)^2-k01*equation_x02*equation_y02)/(10*10^(-10))
& & equation_y03=temp(3)
& & equation_x03=(200*equation_y03^2-200*equation_y03+50)/5
& & equation_z03=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y03)^2-k01*equation_x03*equation_y03)/(10*10^(-10))
嗯嗯,如果是达到sqrt(eps)这个要求就可以的话,那基本算是符合要求了。把计算结果代回原方程,一般都在10^-14或-13的样子。
确实,代码的效率比较低,具体的公式如下:
eq01=ax^3+bx^2+cx+d
其中,a=k01*k2;
b=-(Diff*k1+Diff*k2+k01*k2);
c=2*Diff*k1+Diff*k2+Diff*Concentration*k01
d=-Diff*k1
k1=150*exp(19.462*VV)
k01=150*exp(-19.462*VV)
x=(k2*y^2-k2*y+Diff*Concentration)/Diff
z=(0.059-VV)/(Resistance*Capacitance)-96485*(k1*(1-y)*(1-y)-k01*x*y)/Capacitance
上面除了k1跟k01随VV变化外,其余的均为已知量。
然后对VV循环赋值,这样就会产生不同的k1跟k01,相应的y值也会变化。这样,就相当于1个VV值可以求得3个根,也对应于有3个x和z。
然后就要对VV~z值作图,可以得到一条S型的曲线。
我自己修改了一下程序,把数据保存,然后导出来用origin作图,已经可以得到一条S型的线。不过跟文献里有些差距,所以在想是否与y的求解精度有关。
我在程序中用z代替dφ/dt,用VV表示φ。最后得到关于φ~dφ/dt图,也即程序中的VV~z。
现在是要重现文献中的图,我的课题方向是电化学振荡,就是要查找能够出现振荡所须满足的要求。
T552F2$P0116SM[P9L5DUVN.jpg
这是我自己做出来的图,把重叠的部分删除以后就跟文献中的比较相似了。
G7TOHR4UM~`H{6XGRZ[62R_[4K.jpg
嗯嗯,谢谢。我的基础比较差,所以编的程序都比较繁琐,按部就班的来。我明天运行一下试试看先。
1、变量名是之前老师有要求过,所以用这种,方便以后辨别。
2、我自己编程过程中也有虚部产生,可能是在运算过程中有-1开平方的存在。也没有办法消除。
3、没有加分号是因为需要中间的一些运算结果,方便后续使用。
我在前面的基础上修改了代码;
1. 不需要用syms 定义变量;
2. 不需要用format long, 改用 disp(num2str( x, '%16.8f')) 之类的更好
3. 所谓重叠, 实际是计算中的复数部分, 绘图时候只取了实部,结果有了多余;
去掉这些z中的复数就跟文献一致了;
%format long
%syms k1 k01 VV&&% z=dφ/dt
maxiter = 40;
V=zeros(maxiter,1);
z=zeros(maxiter,3);
for jloop=1:1:maxiter
& & VVstep=0.0002;& && &&&%VV代表电极电势φ
& & VVfinal=0.0160;
& & VV=0.008+VVstep*
& & k1=150*exp(19.462*VV);
& & k01=150*exp(-19.462*VV);
& & equation_a=k01*200;
& & equation_b=-(5*k1+);
& & equation_c=2*5*k1+;
& & equation_d=-5*k1;
& & Coefficient=;
& & temp=roots(Coefficient);
& & equation_y01=temp(1);
& & equation_x01=(200*equation_y01^2-200*equation_y01+50)/5;
& & equation_z01=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y01)^2-k01*equation_x01*equation_y01)/(10*10^(-10));
& & equation_y02=temp(2);
& & equation_x02=(200*equation_y02^2-200*equation_y02+50)/5;
& & equation_z02=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y02)^2-k01*equation_x02*equation_y02)/(10*10^(-10));
& & equation_y03=temp(3);
& & equation_x03=(200*equation_y03^2-200*equation_y03+50)/5;
& & equation_z03=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y03)^2-k01*equation_x03*equation_y03)/(10*10^(-10));
& &% hold on
& & V(jloop)=VV;
& & z(jloop,:)=;
disp('Display the four coefficients of cubic polynomial:')
for iloop=1:length(Coefficient)
& & disp()
% Find real values in z
index01 = find(abs(imag(z(:,1)))&sqrt(eps));
index02 = find(abs(imag(z(:,2)))&sqrt(eps));
index03 = find(abs(imag(z(:,3)))&sqrt(eps));
indices = intersect(intersect(index01,index02),index03);
plot(V(indices),z(indices,:))
legend('equation z01','equation z02','equation z03')
Display the four coefficients of cubic polynomial:
2: -130808
嗯嗯,谢谢,又麻烦你了。我明天试试看
精修了一下;
可能效果更适用
%format long
%syms k1 k01 VV&&% z=dφ/dt
maxiter = 40;
V=zeros(maxiter,1);
z=zeros(maxiter,3);
for jloop=1:1:maxiter
& & VVstep=0.0002;& && &&&%VV代表电极电势φ
& & VVfinal=0.0160;
& & VV=0.008+VVstep*
& & k1=150*exp(19.462*VV);
& & k01=150*exp(-19.462*VV);
& & equation_a=k01*200;
& & equation_b=-(5*k1+);
& & equation_c=2*5*k1+;
& & equation_d=-5*k1;
& & Coefficient=;
& & temp=roots(Coefficient);
& & equation_y01=temp(1);
& & equation_x01=(200*equation_y01^2-200*equation_y01+50)/5;
& & equation_z01=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y01)^2-k01*equation_x01*equation_y01)/(10*10^(-10));
& & equation_y02=temp(2);
& & equation_x02=(200*equation_y02^2-200*equation_y02+50)/5;
& & equation_z02=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y02)^2-k01*equation_x02*equation_y02)/(10*10^(-10));
& & equation_y03=temp(3);
& & equation_x03=(200*equation_y03^2-200*equation_y03+50)/5;
& & equation_z03=(0.059-VV)/(1.1*10^(-7))-96485*(k1*(1-equation_y03)^2-k01*equation_x03*equation_y03)/(10*10^(-10));
& &% hold on
& & V(jloop)=VV;
& & z(jloop,:)=;
disp('Display the four coefficients of cubic polynomial:')
for iloop=1:length(Coefficient)
& & disp()
% Find real values in z
index01 = find(abs(imag(z(:,1)))&sqrt(eps));
index02 = find(abs(imag(z(:,2)))&sqrt(eps));
index03 = find(abs(imag(z(:,3)))&sqrt(eps));
indices = intersect(intersect(index01,index02),index03);
subplot(121)
% plot(V(indices),z(indices,:))
plot (V(index01),z(index01,1),'ro','MarkerFaceColor','none')
plot(V(index02),z(index02,2),'b^','MarkerFaceColor','b')
plot(V(index03),z(index03,3),'ms','MarkerFaceColor','m')
legend('equation z01','equation z02','equation z03')
%view(-90,90)
yi = linspace (min(xx),max(xx),5000);
%yi = zeros(size(xi));
xi = spline(xx,yy,yi);
plot(xi,yi,'b')
subplot(122)
% plot(yi,xi,'r')
% view(-90,90)
% set(gca,'YDir','rev')
plot(xi,yi,'r')
:victory:太谢谢了,就是要这样的,不过我自己之前把数据好像有点弄错了,我再改改。
是这样的,之前有一些参数有问题,弄错了,我修正以后运行程序发现有一些问题,曲线不连贯,能麻烦你再帮我看看吗?
还有就是这些图中的数据能导出来吗?我想自己在origin上作图,这样也方便后面的一些计算使用。如果用fprintf的话,具体要加在哪一步后面呢?
maxiter = 40;
V=zeros(maxiter,1);
z=zeros(maxiter,3);
k2=200;Diff=5;Concentration=10;Resistance=1.1e-008; Capacitance=1
for jloop=1:1:maxiter
& & VVstep=0.0002;& && &&&%VV代表电极电势φ
& & VVfinal=0.0160;
& & VV=0.008+VVstep*
& & k1=150*exp(19.462*VV);
& & k01=150*exp(-19.462*VV);
& & equation_a=k01*k2;
& & equation_b=-(Diff*k1+Diff*k2+k01*k2);
& & equation_c=Diff*(2*k1+k2+Concentration*k01);
& & equation_d=-Diff*k1;
& & Coefficient=;
& & temp=roots(Coefficient);
& & equation_y01=temp(1);
& & equation_x01=(k2*equation_y01^2-k2*equation_y01)/Diff+C
& & equation_z01=((0.059-VV)/Resistance-96485*(k1*(1-equation_y01)^2-k01*equation_x01*equation_y01))/C
& & equation_y02=temp(2);
& & equation_x02=(k2*equation_y02^2-k2*equation_y02)/Diff+C
& & equation_z02=((0.059-VV)/Resistance-96485*(k1*(1-equation_y02)^2-k01*equation_x02*equation_y02))/C
& & equation_y03=temp(3);
& & equation_x03=(k2*equation_y03^2-k2*equation_y03)/Diff+C
& & equation_z03=((0.059-VV)/Resistance-96485*(k1*(1-equation_y03)^2-k01*equation_x03*equation_y03))/C
& &% hold on
& & V(jloop)=VV;
& & z(jloop,:)=;
disp('Display the four coefficients of cubic polynomial:')
for iloop=1:length(Coefficient)
& & disp()
% Find real values in z
index01 = find(abs(imag(z(:,1)))&sqrt(eps));
index02 = find(abs(imag(z(:,2)))&sqrt(eps));
index03 = find(abs(imag(z(:,3)))&sqrt(eps));
indices = intersect(intersect(index01,index02),index03);
subplot(121)
% plot(V(indices),z(indices,:))
plot (V(index01),z(index01,1),'ro','MarkerFaceColor','none')
plot(V(index02),z(index02,2),'b^','MarkerFaceColor','b')
plot(V(index03),z(index03,3),'ms','MarkerFaceColor','m')
legend('equation z01','equation z02','equation z03')
%view(-90,90)
yi = linspace (min(xx),max(xx),5000);
%yi = zeros(size(xi));
xi = spline(xx,yy,yi);
plot(xi,yi,'b')
subplot(122)
% plot(yi,xi,'r')
% view(-90,90)
% set(gca,'YDir','rev')
plot(xi,yi,'r')
untitled.jpg
不要指望别人帮你修改代码中的小bug
你这情况只有两种可能:
1. 你原始数据有问题;
2. 代码中出现了小bug
比如capacitance=1 意味着电容是巨大的;
你确定有这么大的电容吗?? 你确定自己代码没有问题吗?
此外, 保存数据用xlswrite不是很方便吗? 自己看帮助
或者网上搜索关键词, 不要这么简单的地方就希望针对特定的ID找现成答案,除非是收费服务. :sweat:
因为这个代码是之前的虫友应助修改的,所以就想问问,他比较清楚。文献中没有具体的电容参数值,是自己尝试了多次,发现为1时能够得到与文献图中的数量级保持一致,且图形基本相同。自己也尝试修改过代码,基本解决问题了。
把电容稍微改小一点就解决;
保存数据用csvwrite就行了
maxiter = 40;
V=zeros(maxiter,1);
z=zeros(maxiter,3);
Concentration=10;
Resistance=1.1e-008;
Capacitance=9.15e-1;
for jloop=1:1:maxiter
& & VVstep=0.0002;& && &&&%VV代表电极电势φ
& & VVfinal=0.0160;
& & VV=0.008+VVstep*
& & k1=150*exp(19.462*VV);
& & k01=150*exp(-19.462*VV);
& & equation_a=k01*200;
& & equation_b=-(Diffr*k1+Diffr*k2+k01*k2);
& & equation_c= Diffr*(2*k1+k2+Concentration*k01);
& & equation_d=-Diffr*k1;
& & Coefficient=;
& & temp=roots(Coefficient);
& & equation_y01=temp(1);
& & equation_x01=(k2*equation_y01^2-k2*equation_y01)/Diffr+C
& & equation_z01=(0.059-VV)/Resistance -96485*(k1*(1-equation_y01)^2-k01*equation_x01*equation_y01)/C
& & equation_y02=temp(2);
& & equation_x02=(k2*equation_y02^2-k2*equation_y02)/Diffr+C
& & equation_z02=(0.059-VV)/Resistance-96485*(k1*(1-equation_y02)^2-k01*equation_x02*equation_y02)/C
& & equation_y03=temp(3);
& & equation_x03=(k2*equation_y03^2-k2*equation_y03)/Diffr+C
& & equation_z03=(0.059-VV)/Resistance-96485*(k1*(1-equation_y03)^2-k01*equation_x03*equation_y03)/C
& & V(jloop)=VV;
& & z(jloop,:)=;
disp('Display the four coefficients of cubic polynomial:')
for iloop=1:length(Coefficient)
& & disp()
% Find real values in z
index01 = find(abs(imag(z(:,1)))&eps);
index02 = find(abs(imag(z(:,2)))&eps);
index03 = find(abs(imag(z(:,3)))&eps);
set(gcf,'color','white')
subplot(121)
plot (V(index01),z(index01,1),'ro','MarkerFaceColor','none')
plot(V(index02),z(index02,2),'b^','MarkerFaceColor','b')
plot(V(index03),z(index03,3),'ms','MarkerFaceColor','m')
legend('equation z01','equation z02','equation z03')
set(gca,'xcolor','k','ycolor','k','box','on');
yi = linspace (min(xx),max(xx),5000);
xi = spline(xx,yy,yi);
plot(xi,yi,'b');
subplot(122)
plot(xi,yi,'r')
set(gca,'xcolor','b','ycolor','b');
csvwrite(,)
csvwrite(,)
我之前没有系统地学过MATLAB,都是看一点学一点,所以一些你们觉得比较简单的问题我一开始可能就想不到,或者是看不出哪里有问题,需要解决什么问题。总之,十分感谢你的帮助!:hand:
matlab怎么系统地学? 那么多工具箱;
这根本是不可能的;
我们都是自学成才的.
你花的时间太少了;
此外就是,碰到这种简单问题, 先用google之类的搜索一下
你这问题即使用百度,bing也能找到答案;
所以给人以不动脑筋思考的坏印象 :D
那个电容改小一点之后就看上去没问题的问题, 完全依赖于你自己的专业背景
这个matlab再好也没用啊
另外,还想请教一下电容方面的问题。你说电容=1就很大了。我自己的体中,金属在电解液中做过阻抗谱,拟合出来的双电层CPE-T大概在10^-7左右。文献中的电容值数值没有具体给出,但是也是金属在电解质中反应时的双电层电容,是否应该在数量级上相差不大,还是要看具体的?
之前分析过程序,发现是后面画实线部分的程序出现问题的,不是参数的问题,legend('equation z01','equation z02','equation z03')前面的都没问题,点也是对的。就是将点连起来的时候出现了问题。
& &&&向你们学习了,我确实在自学这方面不是很强。以后也尽量学着自己解决问题了。
研究生必备与500万研究生在线互动!
扫描下载送金币
浏览器进程
打开微信扫一扫
随时随地聊科研

我要回帖

更多关于 matlab作图命令 的文章

 

随机推荐