《2022年matlab学习笔记2 .pdf》由会员分享,可在线阅读,更多相关《2022年matlab学习笔记2 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、 函数 eval 的作用:对输入的表达式重新输出一减少系统的表达错误。2、 Global 的作用:同时用于主函数和子函数中,定义变量,使主子函数中数据共享,节省运行时间。并在主函数中进行赋值。3、 数据显示格式控制指令Format short g Format ratFormat long e Format bank Format compact Format loose 含义用 5 位科学记数表示,或4位小数近似有理数表示15位 小数 或15科学记数表示(金融)元角分表示显示变量之间没有空行在显示变量之间有空行4、 化简式子函数:simple(f)5, plot成了图,保存成了 .fig
2、的文件。现在没有了源码,想把数据导出怎么办?下面地址给出了一个例子具体的办法是:open(fnam); % fnam是文件名lh=findall(gca,type,line); % 从当前图 (gca) 中取出曲线的 handle xc=get(lh,xdata); % 取出 x 轴数据,注意,这个x 和 y 是以 cell的数据结构保存的yc=get(lh,ydata); % 取出 y 轴数据x=xc1; 从 cell转换成矩阵,可以这样写y=yc1; - % the data x=1:10; y=rand(size(x); fnam=afig.fig; % .on display fh=f
3、igure; line(x,y); % .and saved saveas(gcf,fnam); delete(fh); % the engine open(fnam); lh=findall(gca,type,line); xx=get(lh,xdata); yy=get(lh,ydata); % the result isequal(x,xx) isequal(y,yy) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 18 页 - - - - - - - - - - 各种数学公式的显示积
4、分公式 : Title(s=inty(t)dt)-一重积分 Title(s=intint y(t)dt)-二重积分导数: 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) 生成
5、1 到 n 的整数随机数组。Magic(n) 魔方矩阵,其元素由1,2,3, ,n2 组成,其每行每列及两条对角线上的元素之和相等。Vander(V) 范德蒙德矩阵,最后一列全为1,倒数第二列为给定列向量,其他各列是其后列与倒数第二列的点积。Toeplitz(X,Y) 托普利兹矩阵,矩阵除第一行第一列为给定外,其他元素与其左上角元素相同。Pascal(n) 帕斯卡矩阵,由杨辉三角行表组成的矩阵。M 函数文件开头只能是function fun= 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 1
6、8 页 - - - - - - - - - - 基本的图形控制Plot(x,y, color-linestyle-marker , markersiaze ,n, linewidth ,m) 坐标系的控制命令描述Axis(xmin xmax ymin ymax) 设置当前图形的坐标范围Axis equal X y 轴的单位长度相同Axis square 图框呈方框Axis tight 坐标范围设定为被绘制的数据范围Axis ij 坐标设置为矩阵模式,水平坐标轴从做到右取值,垂直坐标轴轴从上到下取值Axis xy 坐标设置为笛卡尔坐标系Axis image 设置坐标范围,使其与被显示的图形相适应
7、图形的标注图例标注 :legend(, ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 18 页 - - - - - - - - - - 例:对程序大片的注释让其失去作用的方法:% % - matlab 怎么批量取消 %? 问:我在分布调试程序时,很多行命令都屏蔽了,调试结束后想把那些 %全都. 答:Ctrl+R 多行注释Ctrl+T 取消多行注释如何用 matlab批处理 Excel 数据?紧急! 问:我有几百组数据, 是以 Excel 形式存在的, 如何批量地输入到matlab 的某.
8、 答:可以设置一个矩阵,然后将数据复制粘贴进去。之后对矩阵进行处理,可用循环结构。得到的结果也可以赋给一个矩阵怎么用 MATLAB 批量读取一个文件夹里面的图片. 问:怎么用 MATLAB批量读取一个文件夹里面的图片并进行处精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 18 页 - - - - - - - - - - 理呢?答:1 图像按编号命名 :1.jpg, 2.jpg,.,n.jpg 2 循环读图I=cell(1,n); for i=1:n imageName=strcat(num2s
9、tr(i),.jpg); Ii = imread(imageName); end 3 处理图像- 如果图像 很 多 , 那 么 最 好 这 样 , 第 二 步 和 第 三 步 合 并for i=1:n imageName=strcat(num2str(i),.jpg); I = imread(imageName); 处理当前图像end 用 matlab 批处理一些 txt 文件问:我有一批 txt 文件,命名不规律,但是文件的名字已经存在另一个 txt 文. 答 : 首 先 要 把 数 据 导 入 :有 三 种 常 见 的 方 式 :1. A=importdata(filename.txt)
10、,filename 是 txt 文件名;2.load filename.txt 这样也是载入n*m 的矩阵;3.在 MATLAB 的 work文件夹下,选择想要导入的数据,用右键importdata,根据向导一步一步导入即可。导入之后最后用plot 命令绘图即可。如果都画到一张图上,可将所绘的所有图形用origin 编辑。 Matl. 请问如何用 matlab 批处理多个数据文件? 问:情况是这样的,我编写了一个matlab 程序,每次对一个数据文件( .tx. 答:把.mat 文件放到一起先 ctrl+a 再按 F2 命名为 XX(i).mat for 精品资料 - - - 欢迎下载 - -
11、 - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 18 页 - - - - - - - - - - i=1:100 load strcat(XX(,num2str(i),).mat); end %strcat 是全并string matlab 声音批处理问:比如说对 100 个声音作端点检测,求正确率,正确率=正确检测的个数 /10. 答:你是 .wav 文件么?这样处理for i=1:100 filename=sound num2str(i) .wav; y = wavread(filename); % 对 y 进行处理end 急
12、!请教高手 :如何用 MATLAB 程序高效地对大批量. 问:例如我的 Matlab 程序是针对一幅图片处理并输出结果的,我想对 1000 幅. 答 :写一个for loop 循环就好啦files = dir(*.jpg); for k = 1:numel(files) %.处理代码 . rgb = imread(files(k).name); rgb = rgb(1:1800, 520:2000, :); rgb = imresize(rgb, 0.2, bicubic); imwrite(rgb, cropped files(k).name); end 自己看着修改就好了问:matlab
13、中怎样在命令窗口中批量执行m 文件的内容。 (我现在有 1.m 2.m 3.m .许多 m 文件需要批量处理。答:我的建议是你把初始变量的值都给定,例如参数a=10;把这些参数的值和你1.m 2.m 这些个函数按照顺序都放在一个新的m 文件里,例如x.m,然后运行 x.m.你可以试试 . 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 18 页 - - - - - - - - - - 用 matlab 对文件进行批处理问:一个文件夹下有500 个文本文件,且文件名不规则,这500个文本文件均
14、. 答:思路两种方案:一种,写到临时文件,再覆盖回来。二种,以读写方式打开。二十分钟后再来取吧。第二种方案: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+). 高分求助 matlab 批处理 excel 数据,满意再加100 分问:请教:如何用 ma
15、tlab 遍历某个文件夹下的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 以此类推能看明白吧。其他的要求是你自己能做的。matlab for 循环中的批量保存问题问:程序如下:function enumerate(C) clc n,p=size(C); P=p+1; . 答 : 把A设
16、为 比C 多 一 维 的 矩 阵 , 每 次 存 储 。即 :精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 18 页 - - - - - - - - - - A(:,:,i)=C(B(i,:),:) matlab 批量处理问题问:求一个完整程序,对批量灰度图增加对比度,反色。然后自动保存结果 . 答:mark 一下,晚上帮你看看。另外,反色没啥可说的,但是对比度的话你想要个什么样的对比度算法128 + (Value - 128) * nPercent / 100 合不合适?然后你最好把你的图
17、片发两张给我,让我调试一下程序,不然就算我写好,未必你就完全能用。q:961085556 -. matlab 怎么批量处理图片问:matlab 怎么批量处理图片答:uigetfile 函数可以通过对话框的形式获取文件的信息,将控制参数MultiSelect的值设为on,可以打开多个文件。例如:filename, pathname, filterindex = uigetfile( *.bmp, MultiSelect, on); 上述命令就是获取多个bmp 图像文件的命令, filename 信息是文件名, pathname信息是文件的路径。之后可以用一个for循环,在 for 循环中依次打开
18、所有. 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 18 页 - - - - - - - - - - matlab 如何批量处理图像问:matlab 如何批量处理图像答:给你个例子吧,之前编写的一个程序的部分代码:for i=1:13 url=strcat(gradien,num2str(i),.bmp); %即读取路径 /gradient/下的图像 Imoving=imread(url); MATLAB 中批量处理矩阵问:我在 MATLAB 中创建了例如: d1,d2,d3.这样名称的矩
19、阵,现在我想 . 答:例子:d1=1 2 3; 4 5 6 m,n=size(d1) % m为矩阵行数n 为矩阵列数即 d1 为 2 行 3 列矩阵for i=1:m % 做循环取矩阵中的每一个元素进行运算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,j
20、d,wd,status,v,angle, 粤B000H6,2011/04. 答:要是每行字符长度和格式都一样的话就是下面这个样子。不过第一个数据,我猜是采集时间,输出的是字符,你要画图啥的自 己 再 稍 微 转 换 一 下 格 式 。fid=fopen(data1.txt,r); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 18 页 - - - - - - - - - - text=textscan(fid,%8s%11s%5f%5s); time=char(text1,1); data=
21、text1,3; fclose(fid); 这个时间字符串里有个冒号,不能直接用 str2num,第二种方法我没看明白你要. matlab 批量处理图像文件时,其中一幅图出错 ,程序便终止了 ,如何使. 问:matlab 批量处理图像文件时,其中一幅图出错,程序便终止了 ,如何使 . 答:试试 try.catch.end 语句, try 后的语句若不能执行或有错,就执行 catch 后面的句子。求一段 MATLAB 图像批量处理和数据的存储的代码问:我有大概五万张图片需要处理,图像处理的函数已经编好了,现在还有 . 答:首先保证要处理的图像文件名为数字序列,例如photo-1,photo-2
22、, %Start name=zeros50000,20;% 文 件 名 矩 阵numb=zeros50000,15;% 需 求 数 据 矩 阵for i=1:50000 filename=strcat(filepath,photo-,int2str(i);%生成文件名name(i,:)=filename;% 保存文件名I=imread(filename,jpg); %自编函数处理numb(i,:)=a ;% a 为自编函数中返回的. 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 18 页
23、- - - - - - - - - - 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*1=24 【2】 gamma(5) ans = 24 gam
24、ma(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(factorial(1:n) 执行这两个语句即可符号数据向任意精度的表达:vpa(string,n) string:欲转换的符号数据, n:表达精度精品资料 - - - 欢迎下载
25、- - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 18 页 - - - - - - - - - - %符号 积分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,z
26、min,zmax,tol)%二重(闭型 )数值积分指令triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重 (闭型)数值积分指令在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换。对数转换有双对数坐标转换和单轴对数坐标转换两种。用loglog 函数可以实现双对数坐标转换,用 semilogx 和 semilogy 函数可以实现单轴对数坐标转换。loglog(Y) 表示x、y 坐标都是对数坐标系semilogx(Y) 表示 x 坐标轴是对数坐标系semilogy() 表
27、示 y 坐标轴是对数坐标系plotyy 有两个 y 坐标轴,一个在左边,一个在右边例 1:用方形标记创建一个简单的loglog. 解: 输入命令x=logspace(-1,2); loglog(x,exp(x),-s) grid on % 标注格栅所制图形为 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 18 页 - - - - - - - - - - 例 2:创建一个简单的半对数坐标图. 解输入命令 : x=0:.1:10; semilogy(x,10.x) 所制图形为:精品资料 -
28、 - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 18 页 - - - - - - - - - - 例 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; title loglog-logy=3logx; subplot(2,3,3); plotyy(x,x.3,x,x);
29、 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 18 页 - - - - - - - - - - grid on; title plotyy-y=x3,logy=3logx; subplot(2,3,4); semilogx(x,x.3); grid on; title semilogx-y=3logx; subplot(2,3,5); semilogy(x,x.3); grid on; title semilogy-logy=x3; 所制图形为:精品资料 - - - 欢迎下载 - - -
30、 - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 18 页 - - - - - - - - - - matlab 坐标轴标注和特殊字体2009-06-19 12:24:06| 分类:智慧人生|举报 |字号订阅坐标轴标注:1. 控制 坐标轴 尺度长度: set(gca,XLim,-pi/2 pi) 2. 定制自己想 标注 的刻度:(1)set(gca,XTick,-pi/2:pi/4:pi) (2)set(gca,XTickLabel,-pi/2 -pi/4: 0 pi/4 pi/2 pi*3/4 pi) 3. 反转坐标轴: set(g
31、ca,XDir,reverse) 4. 上下标及 latex 公式输下标: _wb 输上标: 0.5 输 latex 公式:text(Interpreter,latex,. String,$int_0 x!int_y dF(u,v)$,. 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 18 页 - - - - - - - - - - Position,.5 .5,. FontSize,16) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 18 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 18 页 - - - - - - - - - -
限制150内