matlab學(xué)習(xí)筆記_第1頁
matlab學(xué)習(xí)筆記_第2頁
matlab學(xué)習(xí)筆記_第3頁
matlab學(xué)習(xí)筆記_第4頁
matlab學(xué)習(xí)筆記_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1、 函數(shù)eval的作用:對輸入的表達(dá)式重新輸出一減少系統(tǒng)的表達(dá)錯(cuò)誤。2、 Global 的作用:同時(shí)用于主函數(shù)和子函數(shù)中,定義變量,使主子函數(shù)中數(shù)據(jù)共享,節(jié)省運(yùn)行時(shí)間。并在主函數(shù)中進(jìn)行賦值。3、 數(shù)據(jù)顯示格式控制指令Format short gFormat ratFormat long eFormat bankFormat compactFormat loose含義用5位科學(xué)記數(shù)表示,或4位小數(shù)近似有理數(shù)表示15位小數(shù)或15科學(xué)記數(shù)表示(金融)元角分表示顯示變量之間沒有空行在顯示變量之間有空行4、 化簡式子函數(shù):simple(f)5, plot成了圖,保存成了.fig的文件。現(xiàn)在沒有了源碼,

2、想把數(shù)據(jù)導(dǎo)出怎么辦?下面地址給出了一個(gè)例子具體的辦法是:open(fnam); % fnam是文件名lh=findall(gca,'type','line'); % 從當(dāng)前圖(gca)中取出曲線的handlexc=get(lh,'xdata'); % 取出x軸數(shù)據(jù),注意,這個(gè)x和y是以cell的數(shù)據(jù)結(jié)構(gòu)保存的yc=get(lh,'ydata'); % 取出y軸數(shù)據(jù)x=xc1;從cell轉(zhuǎn)換成矩陣,可以這樣寫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)各種數(shù)學(xué)公式的顯示積分公式: Title(s=inty(t)dt)-一重積分 Title(s=intint y(t)dt)-二重積分導(dǎo)

4、數(shù): Title(yprime)-一次導(dǎo)數(shù) Title(yprimeprime)-二次導(dǎo)數(shù)數(shù)組生成: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)生成均勻分布的隨機(jī)數(shù)組,其元素值介于01之間;Randn(n)生成均值為0,方差為1的正態(tài)分布矩陣。Randperm(n) 生成1到n的整數(shù)隨機(jī)數(shù)組。Magic(n) 魔方矩陣,其元素由1,2,3, ,n2組成,其每行每列及兩條對角線上的元素之和相等。Vande

5、r(V) 范德蒙德矩陣,最后一列全為1,倒數(shù)第二列為給定列向量,其他各列是其后列與倒數(shù)第二列的點(diǎn)積。Toeplitz(X,Y) 托普利茲矩陣,矩陣除第一行第一列為給定外,其他元素與其左上角元素相同。Pascal(n) 帕斯卡矩陣,由楊輝三角行表組成的矩陣。M函數(shù)文件開頭只能是 function fun=基本的圖形控制Plot(x,y,color-linestyle-marker,markersiaze,n,linewidth,m)坐標(biāo)系的控制命令描述Axis(xmin xmax ymin ymax)設(shè)置當(dāng)前圖形的坐標(biāo)范圍Axis equalX y軸的單位長度相同Axis square圖框呈方框

6、Axis tight坐標(biāo)范圍設(shè)定為被繪制的數(shù)據(jù)范圍Axis ij坐標(biāo)設(shè)置為矩陣模式,水平坐標(biāo)軸從做到右取值,垂直坐標(biāo)軸軸從上到下取值A(chǔ)xis xy坐標(biāo)設(shè)置為笛卡爾坐標(biāo)系A(chǔ)xis image設(shè)置坐標(biāo)范圍,使其與被顯示的圖形相適應(yīng)圖形的標(biāo)注圖例標(biāo)注:legend(,)例:對程序大片的注釋讓其失去作用的方法:%-matlab怎么批量取消%?問:我在分布調(diào)試程序時(shí),很多行命令都屏蔽了,調(diào)試結(jié)束后想把那些%全都.答:Ctrl+R 多行注釋 Ctrl+T 取消多行注釋如何用matlab批處理Excel數(shù)據(jù)?緊急!問:我有幾百組數(shù)據(jù),是以Excel形式存在的,如何批量地輸入到matlab的某.答:可以設(shè)置一

7、個(gè)矩陣,然后將數(shù)據(jù)復(fù)制粘貼進(jìn)去。之后對矩陣進(jìn)行處理,可用循環(huán)結(jié)構(gòu)。得到的結(jié)果也可以賦給一個(gè)矩陣怎么用MATLAB批量讀取一個(gè)文件夾里面的圖片 .問:怎么用MATLAB批量讀取一個(gè)文件夾里面的圖片 并進(jìn)行處理呢?答:1 圖像按編號命名:1.jpg, 2.jpg,.,n.jpg 2 循環(huán)讀圖 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); 處理當(dāng)前圖像 end用matlab 批處理一些txt文件問:我有一批txt文件,命名不規(guī)律,但是文件的名字已經(jīng)存在另一個(gè)txt文.答:首先要把數(shù)據(jù)導(dǎo)入: 有三種常見的方式: 1. A=importdata('filename.txt') ,filename是txt文件名; 2.load filename.txt 這樣也是載入n*m的矩陣; 3.在MATLAB的work文件夾下,選擇想要導(dǎo)入的數(shù)據(jù),用右鍵importdata,根據(jù)向?qū)б徊揭徊綄?dǎo)入即可。 導(dǎo)入之后最后用plot命

9、令繪圖即可。 如果都畫到一張圖上,可將所繪的所有圖形用origin 編輯。Matl.請問如何用matlab批處理多個(gè)數(shù)據(jù)文件?問:情況是這樣的,我編寫了一個(gè)matlab程序,每次對一個(gè)數(shù)據(jù)文件(.tx.答:把.mat文件放到一起 先ctrl+a再按F2 命名為XX(i).mat for i=1:100 load strcat('XX(',num2str(i),').mat''); end %strcat是全并stringmatlab聲音批處理問:比如說對100個(gè)聲音作端點(diǎn)檢測,求正確率,正確率=正確檢測的個(gè)數(shù)/10.答:你是.wav文件么?這樣處理 fo

10、r i=1:100 filename='sound' num2str(i) '.wav' y = wavread(filename); %對y進(jìn)行處理 end急!請教高手:如何用MATLAB程序高效地對大批量.問:例如我的Matlab程序是針對一幅圖片處理并輸出結(jié)果的,我想對1000幅.答:寫一個(gè)for loop循環(huán)就好啦 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中怎樣在命令窗口中批量執(zhí)行m文件的內(nèi)容。(我現(xiàn)在有1.m 2.m 3.m .許多m文件需要批量處理。答:我的建議是 你把初始變量的值都給定,例如參數(shù)a=10;把這些參數(shù)的值和你1.m 2.m 這些個(gè)函數(shù)按照順序都放在一個(gè)新的m文件里,例如x.m,然后運(yùn)行x.m.你可以試試.用matlab對文件進(jìn)行批處理問:一個(gè)文件夾下有500個(gè)文本文件,且文件名不規(guī)則,這500個(gè)文本文

12、件均.答:思路兩種方案: 一種,寫到臨時(shí)文件,再覆蓋回來。 二種,以讀寫方式打開。 二十分鐘后再來取吧。 第二種方案: 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數(shù)據(jù),滿意再加100分問:請教:如何用matlab遍歷某個(gè)文件夾下的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的時(shí)候 ans = f:1.xls 以此類推 能看明白吧。 其他的要求是

14、你自己能做的。matlab for循環(huán)中的批量保存問題問:程序如下: function enumerate(C) clc n,p=size(C); P=p+1; .答:把A設(shè)為比C多一維的矩陣,每次存儲。 即: A(:,:,i)=C(B(i,:),:)matlab批量處理問題問:求一個(gè)完整程序,對批量灰度圖增加對比度,反色。然后自動(dòng)保存結(jié)果.答:mark一下,晚上幫你看看。另外,反色沒啥可說的,但是對比度的話你想要個(gè)什么樣的對比度算法 128 + (Value - 128) * nPercent / 100 合不合適? 然后你最好把你的圖片發(fā)兩張給我,讓我調(diào)試一下程序,不然就算我寫好,未必你就

15、完全能用。 q: 961085556 -.matlab怎么批量處理圖片問:matlab怎么批量處理圖片答:uigetfile函數(shù)可以通過對話框的形式獲取文件的信息,將控制參數(shù)MultiSelect的值設(shè)為on,可以打開多個(gè)文件。例如: filename, pathname, filterindex = uigetfile( '*.bmp', 'MultiSelect', 'on'); 上述命令就是獲取多個(gè)bmp圖像文件的命令,filename信息是文件名,pathname信息是文件的路徑。之后可以用一個(gè)for循環(huán),在for循環(huán)中依次打開所有.ma

16、tlab如何批量處理圖像問:matlab如何批量處理圖像答:給你個(gè)例子吧,之前編寫的一個(gè)程序的部分代碼: for i=1:13 url=strcat('gradien',num2str(i),'.bmp'); %即讀取路徑/gradient/下的圖像 Imoving=imread(url);MATLAB中批量處理矩陣問:我在MATLAB中創(chuàng)建了例如:d1,d2,d3.這樣名稱的矩陣,現(xiàn)在我想.答:例子: d1=1 2 3; 4 5 6 m,n=size(d1) % m為矩陣行數(shù) n為矩陣列數(shù) 即d1為2行3列矩陣 for i=1:m % 做循環(huán) 取矩陣中的每一個(gè)

17、元素 進(jìn)行運(yùn)算 for j=1:n d(i,j)=d1(i,j)*d1(i,j); %取d1中的第i行 第j列元素 做平方運(yùn)算 end end d - 例子的結(jié)果輸出: d1 = 1 2 3 4 5 6 m = 2 n = 3 d = 1 4 9 16 25 36求用matlab批量處理CSV(逗號分隔符)形式的txt文件的方法。問:文檔內(nèi)容如下 name,time,jd,wd,status,v,angle, 粵B000H6,2011/04.答:要是每行字符長度和格式都一樣的話就是下面這個(gè)樣子。不過第一個(gè)數(shù)據(jù),我猜是采集時(shí)間,輸出的是字符,你要畫圖啥的自己再稍微轉(zhuǎn)換一下格式。 fid=fope

18、n('data1.txt','r'); text=textscan(fid,'%8s%11s%5f%5s'); time=char(text1,1); data=text1,3; fclose(fid); 這個(gè)時(shí)間字符串里有個(gè)冒號,不能直接用str2num,第二種方法我沒看明白你要.matlab批量處理圖像文件時(shí),其中一幅圖出錯(cuò),程序便終止了,如何使.問:matlab批量處理圖像文件時(shí),其中一幅圖出錯(cuò),程序便終止了,如何使.答:試試try.catch.end語句,try后的語句若不能執(zhí)行或有錯(cuò),就執(zhí)行catch后面的句子。求一段MATLAB圖像批

19、量處理和數(shù)據(jù)的存儲的代碼問:我有大概五萬張圖片需要處理,圖像處理的函數(shù)已經(jīng)編好了,現(xiàn)在還有.答:首先保證要處理的圖像文件名為數(shù)字序列,例如photo-1,photo-2, %Start name=zeros50000,20;%文件名矩陣 numb=zeros50000,15;%需求數(shù)據(jù)矩陣 for i=1:50000 filename=strcat('filepath','photo-',int2str(i);%生成文件名 name(i,:)=filename;%保存文件名 I=imread(filename,'jpg'); %自編函數(shù)處理 nu

20、mb(i,:)=a ;% a為自編函數(shù)中返回的.matlab批量修改文件名問:我想把jpg,png,bmp統(tǒng)一轉(zhuǎn)換為 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) %此程序功能是求某個(gè)數(shù)的階乘。 result = 1; for i = 1:N result = result*i; end 據(jù)說其中的N值不能過大 【求1!+2!···+n!】 n=input('請輸入一個(gè)數(shù):');sum

22、(factorial(1:n) 執(zhí)行這兩個(gè)語句即可符號數(shù)據(jù)向任意精度的表達(dá):vpa(string,n)string:欲轉(zhuǎn)換的符號數(shù)據(jù),n:表達(dá)精度%符號積分 int(f,v) int(f,v,a,b) %數(shù)值積分trapz(x,y)%梯形法沿列方向求函數(shù)Y關(guān)于自變量X的積分 cumtrapz(x,y)%梯形法沿列方向求函數(shù)Y關(guān)于自變量X的累計(jì)積分 quad(fun,a,b,tol)%采用遞推自適應(yīng)Simpson法計(jì)算積分 quad1(fun,a,b,tol)%采用遞推自適應(yīng)Lobatto法求數(shù)值積分 dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二

23、重(閉型)數(shù)值積分指令 triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(閉型)數(shù)值積分指令在很多工程問題中,通過對數(shù)據(jù)進(jìn)行對數(shù)轉(zhuǎn)換可以更清晰地看出數(shù)據(jù)的某些特征,在對數(shù)坐標(biāo)系中描繪數(shù)據(jù)點(diǎn)的曲線,可以直接地表現(xiàn)對數(shù)轉(zhuǎn)換。對數(shù)轉(zhuǎn)換有雙對數(shù)坐標(biāo)轉(zhuǎn)換和單軸對數(shù)坐標(biāo)轉(zhuǎn)換兩種。用loglog函數(shù)可以實(shí)現(xiàn)雙對數(shù)坐標(biāo)轉(zhuǎn)換,用semilogx和semilogy函數(shù)可以實(shí)現(xiàn)單軸對數(shù)坐標(biāo)轉(zhuǎn)換。loglog(Y) 表示 x、y坐標(biāo)都是對數(shù)坐標(biāo)系semilogx(Y) 表示 x坐標(biāo)軸是對數(shù)坐標(biāo)系semilogy() 表示y坐標(biāo)軸是對數(shù)坐標(biāo)系plotyy 有兩個(gè)y

24、坐標(biāo)軸,一個(gè)在左邊,一個(gè)在右邊例1:用方形標(biāo)記創(chuàng)建一個(gè)簡單的loglog.解: 輸入命令x=logspace(-1,2);loglog(x,exp(x),'-s')grid on %標(biāo)注格柵所制圖形為:例2:創(chuàng)建一個(gè)簡單的半對數(shù)坐標(biāo)圖.解 輸入命令:x=0:.1:10;semilogy(x,10.x)所制圖形為:例3:繪制y=x3的函數(shù)圖、對數(shù)坐標(biāo)圖、半對數(shù)坐標(biāo)圖.解:在窗口中輸入: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論