本来是去回答百度知道里的问题的,自己技术不很够,折腾几个小时才搞明白,提交时已经有大神解决了问题了。。。。

是这个问题:

然后又悲剧地发现自己的结果和大神的不一样。。。。

公式是:

我得承认大神的代码比我的还是简洁多了,写函数时用了arrayFun,好简洁的。我是一个个写的。。。。

但是觉得我做出来的这个还是有点特点的,所以贴出来,和大家交流一下:

我的思路是:

这个问题是在一定的xyz范围内,对每一个点(x,y,z)生成对应的dB并积分,然后作出图像。图中的那个积分式,对于每个(x,y,z)点都要计算一次,由它决定锥形的方向与大小(积分结果是一个向量,当然就决定了方向,然后其模长就是锥形的大小)。

我采用的数值如下:

R=0.1

I=0.1

x,y,z都在[-15,15]区间内,间隔为2.

图像是这样的,我觉得这个图好神奇,照了很多个角度:

代码如下:

clc

clear all

close all

R=0.1;

I=0.1;

k=10^(-7);%k=u0/(4*pi)

[x,y,z]=meshgrid(-15:2:15);

u_fun=@(f)k.*R.*I.*z.*cos(f)./(sqrt((x-R.*cos(f)).^2+(y-R.*sin(f)).^2+z.^2)).^3;

v_fun=@(f)k*R*I.*z*sin(f)./(sqrt((x-R*cos(f)).^2+(y-R*sin(f)).^2+z.^2)).^3;

w_fun=@(f)-k*R*I*(sin(f)*(y-R*sin(f))+cos(f)*(x-R*cos(f)))./(sqrt((x-R*cos(f)).^2+(y-R*sin(f)).^2+z.^2)).^3;

u=integral(u_fun,0,2*pi,'ArrayValued',true);

v=integral(@(f)v_fun(f),0,2*pi,'ArrayValued',true);

w=integral(@(f)w_fun(f),0,2*pi,'ArrayValued',true);

[cx,cy,cz]=meshgrid([-15:2:15]);

h=coneplot(x,y,z,u,v,w,cx,cy,cz,5);

set(h,'FaceColor','r','EdgeColor','none');

camlight;lighting gouraud;

grid on;box on;

大神的结果是:

代码是:

L = R;

I = 0.1; R = 0.1;

u0 = pi*4e-7;

dB = @(x,y,z,t) u0/4*pi * [ R*I*z*cos(t); R*I*z*sin(t); ...

R*I*(sin(t).*(y-R*sin(t))+cos(t).*(x-R*cos(t))) ] / ...

sqrt( (x-R*cos(t)).^2 + (y-R*sin(t)).^2 + z.^2 ).^3;

B = @(x,y,z) quadv(@(t)dB(x,y,z,t),0,2*pi);

[x,y,z] = meshgrid(linspace(-L,L,10));

B = arrayfun(B,x,y,z,'UniformOutput',false);

[m,n,l] = size(B);

[m,n,l] = meshgrid(1:m,1:n,1:l);

Bx = arrayfun(@(i,j,k)B{i,j,k}(1),m,n,l);

By = arrayfun(@(i,j,k)B{i,j,k}(2),m,n,l);

Bz = arrayfun(@(i,j,k)B{i,j,k}(3),m,n,l);

B = sqrt(Bx.^2+By.^2+Bz.^2);

clf reset

colordef(gcf,'black')

[cx cy cz] = meshgrid(linspace(-L,L,10));

h=coneplot(x,y,z,Bx,By,Bz,cx,cy,cz,B,0.8);

set(h,'EdgeColor', 'none');

view(35,25)

xlabel('x');

ylabel('y');

zlabel('z');

box on;

axis tight

camlight left;

camlight right;

lighting phong

关于用coneplot画图 - MATLAB 基础讨论 - MATLAB中文论坛 - Powered by Discuz!

http://www.ilovematlab.cn/thread-93141-1-1.html

MIT向量场绘图教程

向量场可视化matlab,Matlab向量场可视化相关推荐

  1. matlab流场可视化后处理

    matlab流场可视化后处理 1流体中标量的可视化 1.1 云图 1.2 切片图绘制 1.3 三维等值面图绘制 2流体中矢量的可视化 2.1 箭头图或速度图 2.2 流线图 2.4 带节点的流线图 2 ...

  2. MATLAB常见非线性可视化绘制方法-相图与相空间(二维线性相图与非线性相空间)

    MATLAB常见非线性可视化绘制方法-相图与相空间(二维线性相图与非线性相空间) 0 引言 1 简单二阶微分方程 1.1 最简单的线性系统 1.2 简单的非线性系统 1.3 简单的时变系统 2 线性系 ...

  3. 【Matlab数据的可视化】自适应绘图函数fplot

    今天看到fplot这个函数,于是乎赶快整理出来放到"Matlab数据的可视化"这个板块中,以便更好的完善我们的知识结构.

  4. matlab物理仿真可视化,基于Matlab的建模和仿真

    建模和仿真 Matlab提供了一个独特的建模和仿真的环境.强有力的技术语言既精确又有描述性,让你用较少的简单代码去建模复杂的系统.Matlab和它的产品提供仿真和建模的工具,包括: Matlab的核心 ...

  5. matlab可视化功能6,第6章MATLAB计算结果可视化

    第6章MATLAB计算结果可视化 42第六章 MATLAB 计算结果可视化6.1 连续函数和离散函数的可视化[例 6-1]用图形表示离散函数 . 1)6(nyn=0:12; %产生一组自变量数据 ...

  6. 【教程】Python科研数据可视化、MATLAB科研数据可视化

    在过去的20年中,随着社会产生数据的大量增加,对数据的理解.解释与决策的需求也随之增加.而固定不变是人类本身,所以我们的大脑必须学会理解这些日益增加的数据信息.所谓"一图胜千言", ...

  7. 方形平板振动克拉尼图形可视化计算MATLAB程序(Chladni Patterns)

    方形平板振动克拉尼图形可视化计算MATLAB程序(Chladni Patterns) 0前言 1 数值时域求解 1.1 方程建立 1.2 数值差分方程建立 1.3 计算结果 2 简单的波动解 3 理论 ...

  8. MATLAB科研数据可视化

    互联网的飞速发展伴随着海量信息的产生,而海量信息的背后对应的则是海量数据.如何从这些海量数据中获取有价值的信息来供人们学习和工作使用,这就不得不用到大数据挖掘和分析技术.数据可视化分析作为大数据技术的 ...

  9. MATLAB医学三维重建可视化库

    MATLAB医学三维重建可视化库 准备 代码 界面 示例 其他 分享一个做的很好的医学三维可视化库,能够对三维体数据进行快速三维重建,简单讲解其功能和使用方法. 非常合适只关注可视化结果,而不需要输出 ...

  10. MATLAB科研数据可视化方法

    互联网的飞速发展伴随着海量信息的产生,而海量信息的背后对应的则是海量数据.如何从这些海量数据中获取有价值的信息来供人们学习和工作使用,这就不得不用到大数据挖掘和分析技术.数据可视化分析作为大数据技术的 ...

最新文章

  1. 介绍并扩展Fitnesse的测试模块化机制:Scenario
  2. 基于Python的自动特征工程——教你如何自动创建机器学习特征
  3. asp mvc @Html.CheckBox(sel,true) 往后台传值问题
  4. 关于装箱拆箱导致的异常案例
  5. Python中文问题
  6. arch linux编译,ArchLinux内核编译与安装
  7. js 刷新,返回上一步,前进,后退,
  8. linux mint 引导类型,LinuxMint18配置Grub2默认启动操作系统
  9. 【Java系列】:异常-Exception
  10. 火车采集器如何采集ajax数据和百度站内搜索数据
  11. PHP 7.4 configure error : Package requirements (zlib) were not met
  12. 网络 — MB/s、Mb/s、Mbps、Mbit/s、Kbps
  13. 32 --> 详解 OpenWRT系统框架基础软件模块之netifd
  14. 查看虚拟机vmware下linux的ip
  15. POJ前面的题目算法思路【转】
  16. 制作PDF文件全攻略
  17. QuickSDK-手游出海服务器接入技巧
  18. centos7使用rdo安装openstack遇到的问题
  19. 阿里AI实验室新添两员大将,易鑫集团计划融资8亿美元即将完成IPO | 大数据24小时
  20. C++编译器无法捕捉到的8种错误

热门文章

  1. 华为手机线刷工具_华为手机天气小工具误删/移除/丢失/不见了怎么办?
  2. 钉钉小程序可以上传文件_怎样禁止钉钉外发文件?钉钉文件传输协议分析
  3. 无法加载具有重复项目项的项目: pathstroke.cpp 作为 ClCompile 且作为 None 项类型包括在其中。
  4. Qt中的测试 枚举与 QFlags详解
  5. mysql 存储过程cursor_MySQL 的存储过程写法和Cursor的使用
  6. 锁定计算机的mad命令,本次操作由于这台计算机的限制而被取消
  7. java 6 jaxb_JAVA6开发WebService (五)—— JAXB
  8. oracle with as内存,oracle中with as子句的用法小结(转)
  9. Oracle在开源Mission Control后将其开发团队解散
  10. 为什么要使用叶脊(leaf-spine)拓扑网络zz