matlab学习笔记_第1页
matlab学习笔记_第2页
matlab学习笔记_第3页
matlab学习笔记_第4页
matlab学习笔记_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 函数eval的作用:对输入的表达式重新输出一减少系统的表达错误。2、 Global 的作用:同时用于主函数和子函数中,定义变量,使主子函数中数据共享,节省运行时间。并在主函数中进行赋值。3、 数据显示格式控制指令Format short gFormat ratFormat long eFormat bankFormat compactFormat loose含义用5位科学记数表示,或4位小数近似有理数表示15位小数或15科学记数表示(金融)元角分表示显示变量之间没有空行在显示变量之间有空行4、 化简式子函数:simple(f)5, plot成了图,保存成了.fig的文件。现在没有了源码,

2、想把数据导出怎么办?下面地址给出了一个例子具体的办法是:open(fnam); % fnam是文件名lh=findall(gca,'type','line'); % 从当前图(gca)中取出曲线的handlexc=get(lh,'xdata'); % 取出x轴数据,注意,这个x和y是以cell的数据结构保存的yc=get(lh,'ydata'); % 取出y轴数据x=xc1;从cell转换成矩阵,可以这样写y=yc1;-% the datax=1:10;y=rand(size(x);fnam='afig.fig'%

3、 .on displayfh=figure;line(x,y);% .and savedsaveas(gcf,fnam);delete(fh);% the engineopen(fnam);lh=findall(gca,'type','line');xx=get(lh,'xdata');yy=get(lh,'ydata');% the resultisequal(x,xx)isequal(y,yy)各种数学公式的显示积分公式: Title(s=inty(t)dt)-一重积分 Title(s=intint y(t)dt)-二重积分导

4、数: Title(yprime)-一次导数 Title(yprimeprime)-二次导数数组生成:X=(0:0.1:1) x=linspace(fiest_value,last_value,number_of_value)X=logspace(fiest_value,last_value,number_of_value)Rand(n)生成均匀分布的随机数组,其元素值介于01之间;Randn(n)生成均值为0,方差为1的正态分布矩阵。Randperm(n) 生成1到n的整数随机数组。Magic(n) 魔方矩阵,其元素由1,2,3, ,n2组成,其每行每列及两条对角线上的元素之和相等。Vande

5、r(V) 范德蒙德矩阵,最后一列全为1,倒数第二列为给定列向量,其他各列是其后列与倒数第二列的点积。Toeplitz(X,Y) 托普利兹矩阵,矩阵除第一行第一列为给定外,其他元素与其左上角元素相同。Pascal(n) 帕斯卡矩阵,由杨辉三角行表组成的矩阵。M函数文件开头只能是 function fun=基本的图形控制Plot(x,y,color-linestyle-marker,markersiaze,n,linewidth,m)坐标系的控制命令描述Axis(xmin xmax ymin ymax)设置当前图形的坐标范围Axis equalX y轴的单位长度相同Axis square图框呈方框

6、Axis tight坐标范围设定为被绘制的数据范围Axis ij坐标设置为矩阵模式,水平坐标轴从做到右取值,垂直坐标轴轴从上到下取值Axis xy坐标设置为笛卡尔坐标系Axis image设置坐标范围,使其与被显示的图形相适应图形的标注图例标注:legend(,)例:对程序大片的注释让其失去作用的方法:%-matlab怎么批量取消%?问:我在分布调试程序时,很多行命令都屏蔽了,调试结束后想把那些%全都.答:Ctrl+R 多行注释 Ctrl+T 取消多行注释如何用matlab批处理Excel数据?紧急!问:我有几百组数据,是以Excel形式存在的,如何批量地输入到matlab的某.答:可以设置一

7、个矩阵,然后将数据复制粘贴进去。之后对矩阵进行处理,可用循环结构。得到的结果也可以赋给一个矩阵怎么用MATLAB批量读取一个文件夹里面的图片 .问:怎么用MATLAB批量读取一个文件夹里面的图片 并进行处理呢?答:1 图像按编号命名:1.jpg, 2.jpg,.,n.jpg 2 循环读图 I=cell(1,n); for i=1:n imageName=strcat(num2str(i),'.jpg'); Ii = imread(imageName); end 3 处理图像 - 如果图像很多,那么最好这样,第二步和第三步合并 for i=1:n imageName=strcat

8、(num2str(i),'.jpg'); I = imread(imageName); 处理当前图像 end用matlab 批处理一些txt文件问:我有一批txt文件,命名不规律,但是文件的名字已经存在另一个txt文.答:首先要把数据导入: 有三种常见的方式: 1. A=importdata('filename.txt') ,filename是txt文件名; 2.load filename.txt 这样也是载入n*m的矩阵; 3.在MATLAB的work文件夹下,选择想要导入的数据,用右键importdata,根据向导一步一步导入即可。 导入之后最后用plot命

9、令绘图即可。 如果都画到一张图上,可将所绘的所有图形用origin 编辑。Matl.请问如何用matlab批处理多个数据文件?问:情况是这样的,我编写了一个matlab程序,每次对一个数据文件(.tx.答:把.mat文件放到一起 先ctrl+a再按F2 命名为XX(i).mat for i=1:100 load strcat('XX(',num2str(i),').mat''); end %strcat是全并stringmatlab声音批处理问:比如说对100个声音作端点检测,求正确率,正确率=正确检测的个数/10.答:你是.wav文件么?这样处理 fo

10、r i=1:100 filename='sound' num2str(i) '.wav' y = wavread(filename); %对y进行处理 end急!请教高手:如何用MATLAB程序高效地对大批量.问:例如我的Matlab程序是针对一幅图片处理并输出结果的,我想对1000幅.答:写一个for loop循环就好啦 files = dir('*.jpg'); for k = 1:numel(files) %.处理代码. rgb = imread(files(k).name); rgb = rgb(1:1800, 520:2000, :);

11、 rgb = imresize(rgb, 0.2, 'bicubic'); imwrite(rgb, 'cropped' files(k).name); end 自己看着修改就好了问:matlab中怎样在命令窗口中批量执行m文件的内容。(我现在有1.m 2.m 3.m .许多m文件需要批量处理。答:我的建议是 你把初始变量的值都给定,例如参数a=10;把这些参数的值和你1.m 2.m 这些个函数按照顺序都放在一个新的m文件里,例如x.m,然后运行x.m.你可以试试.用matlab对文件进行批处理问:一个文件夹下有500个文本文件,且文件名不规则,这500个文本文

12、件均.答:思路两种方案: 一种,写到临时文件,再覆盖回来。 二种,以读写方式打开。 二十分钟后再来取吧。 第二种方案: dirpath=uigetdir; filestruct=dir(dirpath); Nfile=length(filestruct); for i=1:Nfile if strcmp(filestruct(i).name,'.') | strcmp(filestruct(i).name,'.') continue; end fp=fopen(dirpath,'',filestruct(i).name,'r+')

13、.高分求助matlab批处理excel数据,满意再加100分问:请教:如何用matlab遍历某个文件夹下的excel文件,然后要依次读入每.答:既然知道xlsread就简单了 比如文件名是在f盘下的1.xls,2.xls.100.xls 那就可以这样: data=cell(100,1); for i=1:100 datai=xlsread('f:',i+'0','.xls') end 'f:',i+'0','.xls' 在i=1的时候 ans = f:1.xls 以此类推 能看明白吧。 其他的要求是

14、你自己能做的。matlab for循环中的批量保存问题问:程序如下: function enumerate(C) clc n,p=size(C); P=p+1; .答:把A设为比C多一维的矩阵,每次存储。 即: A(:,:,i)=C(B(i,:),:)matlab批量处理问题问:求一个完整程序,对批量灰度图增加对比度,反色。然后自动保存结果.答:mark一下,晚上帮你看看。另外,反色没啥可说的,但是对比度的话你想要个什么样的对比度算法 128 + (Value - 128) * nPercent / 100 合不合适? 然后你最好把你的图片发两张给我,让我调试一下程序,不然就算我写好,未必你就

15、完全能用。 q: 961085556 -.matlab怎么批量处理图片问:matlab怎么批量处理图片答:uigetfile函数可以通过对话框的形式获取文件的信息,将控制参数MultiSelect的值设为on,可以打开多个文件。例如: filename, pathname, filterindex = uigetfile( '*.bmp', 'MultiSelect', 'on'); 上述命令就是获取多个bmp图像文件的命令,filename信息是文件名,pathname信息是文件的路径。之后可以用一个for循环,在for循环中依次打开所有.ma

16、tlab如何批量处理图像问:matlab如何批量处理图像答:给你个例子吧,之前编写的一个程序的部分代码: for i=1:13 url=strcat('gradien',num2str(i),'.bmp'); %即读取路径/gradient/下的图像 Imoving=imread(url);MATLAB中批量处理矩阵问:我在MATLAB中创建了例如:d1,d2,d3.这样名称的矩阵,现在我想.答:例子: d1=1 2 3; 4 5 6 m,n=size(d1) % m为矩阵行数 n为矩阵列数 即d1为2行3列矩阵 for i=1:m % 做循环 取矩阵中的每一个

17、元素 进行运算 for j=1:n d(i,j)=d1(i,j)*d1(i,j); %取d1中的第i行 第j列元素 做平方运算 end end d - 例子的结果输出: d1 = 1 2 3 4 5 6 m = 2 n = 3 d = 1 4 9 16 25 36求用matlab批量处理CSV(逗号分隔符)形式的txt文件的方法。问:文档内容如下 name,time,jd,wd,status,v,angle, 粤B000H6,2011/04.答:要是每行字符长度和格式都一样的话就是下面这个样子。不过第一个数据,我猜是采集时间,输出的是字符,你要画图啥的自己再稍微转换一下格式。 fid=fope

18、n('data1.txt','r'); text=textscan(fid,'%8s%11s%5f%5s'); time=char(text1,1); data=text1,3; fclose(fid); 这个时间字符串里有个冒号,不能直接用str2num,第二种方法我没看明白你要.matlab批量处理图像文件时,其中一幅图出错,程序便终止了,如何使.问:matlab批量处理图像文件时,其中一幅图出错,程序便终止了,如何使.答:试试try.catch.end语句,try后的语句若不能执行或有错,就执行catch后面的句子。求一段MATLAB图像批

19、量处理和数据的存储的代码问:我有大概五万张图片需要处理,图像处理的函数已经编好了,现在还有.答:首先保证要处理的图像文件名为数字序列,例如photo-1,photo-2, %Start name=zeros50000,20;%文件名矩阵 numb=zeros50000,15;%需求数据矩阵 for i=1:50000 filename=strcat('filepath','photo-',int2str(i);%生成文件名 name(i,:)=filename;%保存文件名 I=imread(filename,'jpg'); %自编函数处理 nu

20、mb(i,:)=a ;% a为自编函数中返回的.matlab批量修改文件名问:我想把jpg,png,bmp统一转换为 1filename.bmp,2filename.bmp,3filena.答:x = dir('D:Program FilesMATLABR2010btesttest*.a'); y = dir('D:Program FilesMATLABR2010btesttest*.b'); z=x;y l = length(z); filename =Matlab求阶乘:【1】 >> factorial(4) ans = 24 4!=4*3*2*

21、1=24 【2】 >> gamma(5) ans = 24 gamma(N)=(N-1)*(N-2)*.*2*1 【3】 >> s='4!' s =4! >> vpa(s) ans =24. 【4】 编辑一下m文件: function result = jiecheng(N) %此程序功能是求某个数的阶乘。 result = 1; for i = 1:N result = result*i; end 据说其中的N值不能过大 【求1!+2!···+n!】 n=input('请输入一个数:');sum

22、(factorial(1:n) 执行这两个语句即可符号数据向任意精度的表达:vpa(string,n)string:欲转换的符号数据,n:表达精度%符号积分 int(f,v) int(f,v,a,b) %数值积分trapz(x,y)%梯形法沿列方向求函数Y关于自变量X的积分 cumtrapz(x,y)%梯形法沿列方向求函数Y关于自变量X的累计积分 quad(fun,a,b,tol)%采用递推自适应Simpson法计算积分 quad1(fun,a,b,tol)%采用递推自适应Lobatto法求数值积分 dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二

23、重(闭型)数值积分指令 triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(闭型)数值积分指令在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换。对数转换有双对数坐标转换和单轴对数坐标转换两种。用loglog函数可以实现双对数坐标转换,用semilogx和semilogy函数可以实现单轴对数坐标转换。loglog(Y) 表示 x、y坐标都是对数坐标系semilogx(Y) 表示 x坐标轴是对数坐标系semilogy() 表示y坐标轴是对数坐标系plotyy 有两个y

24、坐标轴,一个在左边,一个在右边例1:用方形标记创建一个简单的loglog.解: 输入命令x=logspace(-1,2);loglog(x,exp(x),'-s')grid on %标注格栅所制图形为:例2:创建一个简单的半对数坐标图.解 输入命令:x=0:.1:10;semilogy(x,10.x)所制图形为:例3:绘制y=x3的函数图、对数坐标图、半对数坐标图.解:在窗口中输入:x=1:1:100;subplot(2,3,1);plot(x,x.3);grid on;title 'plot-y=x3' subplot(2,3,2);loglog(x,x.3);grid on;ti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论