【摇头灯源码】【源码报价比例】【200102131的源码】octmatlab源码

时间:2024-11-26 16:27:35 编辑:魂斗罗java源码 来源:网页空白源码

1.matlab 中如何把x轴坐标值设置成斜体?
2.matlab读取fds文件
3.MATLAB联合绘制条形图、误差棒图、线图并改属性
4.如何用matlab确定十字激光中心光斑的位置,急求,望好心...
5.Octave/Matlab复数矩阵sinc插值高性能版

octmatlab源码

matlab 中如何把x轴坐标值设置成斜体?

       matlab中设置x轴坐标值为斜体的方法为:将坐标轴刻度的 Fontangle 属性设置为 italic,关键代码为:>> set(gca,摇头灯源码'Fontangle','italic'),效果如下图所示:

       此外,如果要设置x轴标题为斜体,可以使用Latex语法 \it 设置:

       >> xlabel('\it your-x-title')

matlab读取fds文件

        一般matlab里的读取都是txt文件,麻烦一点的有的用excel,毕竟是数据处理的软件嘛。

       我觉得你这个图形文件最好能转成txt格式的,一定是有方法转的。

       转完了放在matlab就很容易。

       方法如下:

       首先,你备份文件,源码报价比例确定格式为,.txt。

       然后我们用传统的方法在matlab你面读取你的txt。

       尝试这个程序:

        

        M= gallery('integerdata', , [5 8], 0);

       dlmwrite('myfile.txt', M, 'delimiter', '\t')

       D=dlmread('myfile.txt')

        

       第一行是我生成的一个矩阵,然后第二行我写入到文件'myfile.txt'。

       这就模拟了你的.dat文件, 改成.txt之后的样子。

       你在程序第一行写

       D=dlmread('myfile.txt')

       就读取了文件。并把读取的,写入到了D矩阵中。

       结果如下:

       你可以尝试一下。

       希望解决了你的疑惑,谢谢。

MATLAB联合绘制条形图、误差棒图、200102131的源码线图并改属性

       本文基于MATLAB,利用月的ninoz数据,将条形图(bar),误差棒图(errorbar),线图(plot)绘制在一起,并且任意改变其颜色和改变坐标轴大小、标识等属性。

       第一,启动MATALB,新建脚本(Ctrl+N),输入如下代码: close all;clear all; clc figure('Name','Monthly Ninoz','Position',[,,,]) time=1:1:; ninoz=[0.,0.,0.,0.,-0.1,-0.,... -0.,-0.,-0.,-0.,-0.,-0.,... -0.,-0.,0.,0.,0.,0.,]; variance=[0.,0.,0.,0.,0.,0.,... 0.,0.,0.,0.,0.,0.,... 0.,0.,0.,0.,0.,0.]; bar(time,ninoz);hold on;bar(time(1:4),ninoz(1:4),'r'); bar(time(5:),ninoz(5:),'g'); bar(time(:),ninoz(:),'w'); 其中ninoz有个月的平均值,variance是个月相应的方差值。 bar( )是绘制条形图。需要注意的是ninoz和variance数据是制(编)造(的)。

       第二,ddx网站源码保存和运行上述脚本,得到如下图形。

       第三,接着在编辑区输入如下代码: errorbar(time(:),ninoz(:),variance(:),'b',... 'LineWidth',1);plot(time(:),ninoz(:)+variance(:),'k',... 'LineWidth',2);plot(time(:),ninoz(:)-variance(:),'k',... 'LineWidth',2);hold off; 其中errobar是绘制误差棒图,plot是绘制线图。

       第四,保存和运行上述增加后的脚本,得到如下图形。

       第五,对上述图形进行一些修饰,接着输入如下代码: set(gca,'FontSize',,'TickDir','out',... 'XTick',[0:2:],'YTick',[-2:0.5:2],... 'TickLength',[0.,0.])set(gca,'XTickLabel',{ 'Feb','Apr','Jun','Aug','Oct',... 'Dec','Feb','Apr','Jun','Aug','Oct'}) xlabel('Months');ylabel('Ninoz'); axis([0,,-2,2]) 其中前两个set(gca,...)是改变坐标轴的字体大小,标识范围和标识内容等,xlable,ylabel是添加坐标轴的名称,axis([ ])是墨香源码说明设置坐标轴的范围。

       第六,最后保存和运行上述最终脚本,得到如下图形。

如何用matlab确定十字激光中心光斑的位置,急求,望好心...

       如何用matlab确定十字激光中心光斑的位置,急求,望好心...

       matlab图像处理确定激光光斑的中心的详细过程和算法

       个不难的:

       - 图像预处理,自动阀值方法二值化,然后滤掉噪声点,得到比较干净的圆形光斑离散点集;

       - 用以下这个程序拟合出离散点的圆,并找出圆心。

       其中第一步的自动阀值可以用otsu函数(otsu method,大津法),其余都很基础;第二步的程序如果看不懂,可以进一步看看参考资料连接。

       function [xc,yc,R,a] = circfit(x,y)

       %

       % [xc yx R] = circfit(x,y)

       %

       % fits a circle in x,y plane in a more accurate

       % (less prone to ill condition )

       % procedure than circfit2 but using more memory

       % x,y are column vector where (x(i),y(i)) is a measured point

       %

       % result is center point (yc,xc) and radius R

       % an optional output is the vector of coeficient a

       % describing the circle's equation

       %

       % x^2 y^2 a(1)*x a(2)*y a(3)=0

       %

       % By: Izhak bucher /oct /,

       x=x(:); y=y(:);

       a=[x y ones(size(x))]\[-(x.^2 y.^2)];

       xc = -.5*a(1);

       yc = -.5*a(2);

       R = sqrt((a(1)^2 a(2)^2)/4-a(3));

       

参考资料:

       匿名 �0�2<span class="tm">4- :</span>

       </p>

       <div>

       <div class="ra ft"><div class="bt bg1"><img alt="相关内容" class="m" height="" src="/static/img/ico3.gif" width=""/>相关内容</div></div>

       <p class="ft">

Octave/Matlab复数矩阵sinc插值高性能版

       本文以C/C++(Oct/Mex)技术实现Octave/Matlab的sinc插值,通过OpenMP并行、原位运算、查表法、同一插值点的sinc的分子变号处理、临近点免插值等方法,在保证精度足够的前提下,实现高速sinc插值,支持高维矩阵按页插值。

       一 背景介绍

       原位(In-place)运算即在原处进行运算,对于大规模矩阵运算可以提高运行速度,节约内存I/O时间和需求。SAR成像和运补常用sinc插值,本文以sinc插值为例,介绍如何省内存、最快地实现Octave或Matlab下C/C++语言oct/mex的文件编写。众所周知,Octave/Matlab的for循环速度慢,局部代码用C/C++来写可以有效解决效率问题,但如果不用原位运算,传输矩阵到C/C++、扩展内存、复制矩阵的时间可能就比运算效率提升节约的时间还多。由于Octave Oct/Matlab Mex大多没有关于原位运算的示范,而如果不采用原位运算,在执行代码时会隐式或自行显示地复制矩阵,对于数据规模大的情况不合适,因此研究了如何原位运算sinc插值,在此分享。此外,尽管非均匀采样理论上不适用sinc插值,但对于非均匀性不高时仍然是有效的,因此代码也提供了非均匀插值均匀的功能。由于对整体插值时插值核的和区别可以忽略,因此没有做归一化。

       Matlab自a起,复数矩阵的存储改成同Octave的实虚交替的存储方式,以complex矩阵为例,如果一个矩阵是:

       x=[1+1.5j 3+3.5j; 2+2.5j 4+4.5j];

       那么对于Octave或Ra及以后的Matlab,在内存中存储为一个数组:

       1 > 1.5 > 2 > 2.5 > 3 > 3.5 > 4 > 4.5

       对于之前版本的Matlab,在内存中存储为两个数组:

       1 > 2 > 3 > 4

       1.5 > 2.5 > 3.5 > 4.5

       如在Octave Mex/Matlab Ra后使用mxGetPr mxGetPi获取传入复数矩阵的实部和虚部,Octave/Matlab将获取第一种存储方式的实部和虚部,复制一份以第二种方式临时存储供mex使用,因此增加了一倍的数据存储。在C里的任何修改对Octave/Matlab存储没有影响,计算结果需要用输出变量传出,整个过程需要至少2倍的原数据规模。采用实部虚部分离的方式可以进行原位运算,但由于Octave/新版Matlab实部虚部在内存中是交替的,提取实部虚部同样增加了可观的内存I/O时间和额外占用。最合适的办法是使用Octave的Oct接口或Matlab新版的C API接口,对于Matlab即使用mxGetComplexSingles取代mxGetPr和mxGetPi,然后进行原位运算。

       二 代码示例

       Octave的代码保存为 interp_sinc.cc,Matlab的代码保存为interp_sinc.c:

       三 编译使用

       编译器安装:

       ·Linux:使用系统GCC/G++

       ·Windows Octave:Octave自带编译器

       ·Windows Matlab:github.com/skeeto/wdevkit/releases下载 wdevkit-mini-x.xx.x.zip解压至C:\wdevkit

       编译:

       ·Octave:

       CFLAGS='-Ofast -fmath-errno -fno-finite-math-only -fno-associative-math -s -pipe -fopenmp -Wall';

       mkoctfile(CFLAGS,'interp_sinc_c.cc');

       ·Matlab:

       CFLAGS='-Ofast -fmath-errno -fno-finite-math-only -s -pipe -fopenmp -Wall';

       setenv('MW_MINGW_LOC','C:\wdevkit');

       mex(['-setup:',matlabroot,'\bin\win\mexopts\mingw.xml']);

       mex(['CFLAGS="$CFLAGS ',flag,'"'],['LDFLAGS="$LDFLAGS ',CFLAGS,'"'],'-Ra','interp_sinc_c.c');

       使用:

       Octave/Matlab调用方式如下,以沿着行插值,插值点数点为例,s矩阵是原信号,coor为插值坐标,完成后s矩阵即为插值后的数据,不需要interp_sinc函数给变量赋值,为节约内存加快速度,s、coor均为单精度格式。

       interp_sinc(s,coor,1,,1,2);

       测试样例: