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

[已解决] matlab如何绘制出含两个变量的累加函数图像

[复制链接]

新手

7 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
函数表达式如图片所示,N=1:1:100,r=1:0.1:10,想得到的图像示例如图。我在变成运行的过程中同时用两个变量还不会,因此是将r先取为定值,仅仅让n变化,运行结果中经常出现“Warning: Imaginary parts of complex X and/or Y arguments ignored”。附上r=1时我自己编的程序:N=1:100;m1=0.0086.*(0.39-2.*(N-1).*1)./pi.*log((196+(19-(N-1).*1))./(196+(12-(N-1).*1)));plot(N,m1)  公式可以直接复制我这里面的。这样的出来的肯定不是我预期想要的图像,所以想请教一下这个到底该如何处理才能得到示例图片中的图像!谢谢!

公式

公式

图像示例

图像示例

论坛优秀回答者

专家

2401 麦片

财富积分


20003000


1

主题

2660

帖子

541

最佳答案
  • 关注者: 94
发表于 2018-7-19 12:46:21 | 显示全部楼层 |此回复为最佳答案
本帖最后由 maple1314168 于 2018-7-19 12:49 编辑
  1. [N,r]=meshgrid(1:100,1:0.1:10);%网格
  2. z=0.0086.*(0.39-2.*(N-1).*r)./pi.*log((196+(19-(N-1).*r))./(196+(12-(N-1).*r)));%计算,看看N、r或者公式是否有误。
  3. z(abs(imag(z))>1e-9)=NaN;%通过1e-9把存在虚部的设为NaN,有时可以设置更小。
  4. contourf(N,r,z);%作图
  5. colorbar
复制代码

新手

7 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2018-7-19 15:52:16 | 显示全部楼层

谢谢,运行结果是我预期的结果,其余的细节我自己再修饰,比如坐标轴等。
我想问下的是:公式是累加形式,在您的代码上M的表达式知识里面的某一项,这样算出来的结果是累加和吗?

运行结果

运行结果

论坛优秀回答者

专家

2401 麦片

财富积分


20003000


1

主题

2660

帖子

541

最佳答案
  • 关注者: 94
发表于 2018-7-19 16:08:28 | 显示全部楼层
goodluckboys 发表于 2018-7-19 15:52
谢谢,运行结果是我预期的结果,其余的细节我自己再修饰,比如坐标轴等。
我想问下的是:公式是累加形式 ...

z=repmat(sum(0.0086.*(0.39-2.*(N'-1).*r')./pi)',1,100).*log((196+(19-(N-1).*r))./(196+(12-(N-1).*r)));
z(abs(imag(z))>1e-9)=NaN;
这样?

新手

7 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2018-7-20 10:26:24 | 显示全部楼层
maple1314168 发表于 2018-7-19 16:08
z=repmat(sum(0.0086.*(0.39-2.*(N'-1).*r')./pi)',1,100).*log((196+(19-(N-1).*r))./(196+(12-(N-1).*r ...

你这个N,r的取值定义还用不用的上   [N,r]=meshgrid(1:100,0.001:0.001:0.01);   sum里面后面那个 ,1,100 是不是将N和r都限定在 1:100,但是N和r取值是不同的。还有你这个Z的计算公式怪怪的。你这个代码运行结果见图片
untitled.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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