Matlab编程学习笔记【待续】
最近想用Matlab進行數據分析,算法性能測試,平時由于用的是C、C++,因此很多習慣都一時改不了,這里自己列出來一些Matlab中明顯不同的地方。
這里附上一個自己第一次編寫的M文件:功能是從文本數據中讀取格式數據
?my.txt文本內容:
?
?實現代碼如下:
read.m 1 %2 %write a program for reading files
3 %
4 fid=fopen('my.txt','r');
5 %
6 %set j=1 notice:matlab first index is 1 not 0.
7 %
8 i=1;
9 j=1;
10 flag=0;
11 while ~feof(fid)
12 s=fgets(fid);
13 temp='';
14 for k=1:length(s) %|| (s(k))==EOF
15 if (s(k)==32 | s(k)==10) % ''10 % '\n'
16 if flag==1 %last char is not ''
17 %fprintf(1,'temp=%s\n',temp);
18 A(i,j)=str2num(temp);
19 %fprintf(1,'A[%d][%d]=%f\n',i,j,A(i,j));
20 j=j+1;%add columns
21 temp='';
22 end
23 flag=0;
24 else
25 %connect the new char to temp
26 temp(length(temp)+1)=s(k);
27 flag=1;
28 end
29 end
30 %%
31 i=i+1;%add rows
32 j=1;%re set j=1 notice:matlab first index is 1 not 0.
33 end
34 if flag==1
35 [rows,columns]=size(A);
36 A(rows,columns)=str2num(temp);
37 %fprintf(1,'A[%d][%d]=%f\n',i-1,j,A(i-1,j));
38 flag=0;
39 temp='';
40 end
41 fclose(fid);
42 A
?另外:str='\n' 那么str(1)=\ str(2)=n 而不是str(1)=\n換行符。故而在實際使用時候應用其ASCII碼10代替。其他的字符這不需要。
str=',' ,replaced by str(1),類似的其他一般字符都可以這么操作。
M文件編寫,函數調用
???? 函數定義形式:function[輸出變量列表]=函數名(輸入變量列表)
?????????????????????????? 函數體語;
注意事項:當輸入變量多于一個時,應該用方括號,輸入變量多于一個時應該用逗號隔開,編寫完以后必須以函數名存盤,否則不能被調用,函數M文件不能訪問工作區中
的變量。例如:one output variable????????????????????????????????????????????????????? two output variable
???????????????????%filename:sci.m?????????????????????????????????????????????????????????????%?filename:sc.m
?????????????????? function y=sci(x)???????????????????????????????????????????????????????????? function[y,z]=sc(x)
???????????????????????? ..............???????????????????????????????????????????????????????????????????????? .........
基本的繪圖控制
??? 在調用plot時可以指定顏色、線型和數據點圖標,基本格式為:plot(x,y,'color-linestyle-marker')
當只指定數據點圖標時,數據點將不連成線,而只畫出一個個孤立的數據點。字符串參數的取值如下:
顏色:y(黃);r(紅);g(綠);b(藍);w(白);k(黑);m(紫);c(青)
線型:-(實線);:(點線);-.(虛點線);- -(虛線).
數據點圖標:.;+;*;o(小圓圈);pentagram(五角星)等等,
這些標記符的大小、形狀、填充等詳細可查看:http://blog.csdn.net/benjmzhu/article/details/7246892
?
plot(t,sin(2*t),'-mo',...
??????????????? 'LineWidth',2,...
??????????????? 'MarkerEdgeColor','k',...
??????????????? 'MarkerFaceColor',[.49 1 .63],...
??????????????? 'MarkerSize',12)
?
??? 坐標系的控制:不特別指定時,matlab自動指定圖形的橫縱坐標比例和顯示的范圍,如果不滿意,可用axis命令來控制,常用的有:
?? axis([xmin xmax ymin ymax]) []中分別給出x軸和y軸的最小、最大值
?? axis equal x軸和y軸的單位長度相同
???axis square 圖框呈方形
?? axis off 取消坐標軸
圖形標注
xlabel,ylabel,zlabel,title
text和gtext用于在圖形中特定的位置加字符串,前者字符串的位置在命令中指定,后者用鼠標指定;
grid在圖形上加網格。
多幅圖像:subplot(m,n,p)可在同一個圖形窗口中,畫出多福不同圖像。
三維圖形
空間曲線:plot3(x,y,z)
帶網格的曲面:[X,Y]=meshgrid(x,y);mesh(X,Y,Z);surf(X,Y,Z)
高等線:二維三維高等線函數contour,contour3
打開另外一個圖形窗口命令:figure(n)
Matlab編程網上資料收集:
MATLAB通用圖形函數命令 matlab之基本繪圖函數?? http://wenku.baidu.com/view/f451ff84bceb19e8b8f6ba8f.html
matlab設置圖中字體和線條大小等? http://wenku.baidu.com/view/9f865323aaea998fcc220e5e.html
?
待續。。。。。。
?????????
轉載于:https://www.cnblogs.com/wintergrass/archive/2011/11/10/2244961.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Matlab编程学习笔记【待续】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸟哥Linux 私房菜
- 下一篇: 开始学习ZendFramework框架了