Matlab基础

第一节    Contents
  • I. 清空环境变量及命令
  • II. 变量命令规则
  • III. MATLAB数据类型
  • IV. MATLAB矩阵操作
  • V. MATLAB逻辑与流程控制
  • VI. MATLAB脚本与函数文件
  • VII. MATLAB基本绘图操作
  • VIII. MATLAB文件导入
  1. 清空环境变量及命令 clear all              % 清除Workspace中的所有变量 clc              % 清除Command Window中的所有命令 II. 变量命令规则 1. 变量名区分大小写 A = 2   a = 3  与其他编程语言相同 2. 变量名长度不超过63位 3. 变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点  4. 变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义 A = rand(3,5)            三行五列的零到一的随机数 rows = size(A, 1)         A矩阵的行数 cols = size(A, 2)         A矩阵的列数
III. MATLAB数据类型 1. 数字 2. 字符与字符串       s = 'a'       abs(s)      绝对值函数       char(65)       num2str(65)       str = 'I Love MATLAB & Machine Learning.'       length(str)  包含空格和标点       doc num2str  说明书 3. 矩阵 A = [1 2 3; 4 5 2; 3 2 7] B = A'              B表示为A的转置 C = A(:)             将矩阵A转为一列列向量 D = inv(A)            求逆矩阵 E = zeros(10,5,3)       三维矩阵 10*5*3 E(:,:,1) = rand(10,5) E(:,:,2) = randi(5, 10,5) Randi()用法 randi()    函数生成均匀分布的伪随机整数, 范围为imin--imax,如果没指定imin,则默认为1。 r = randi(imax,n):生成n*n的矩阵 r = randi(imax,m,n):生成m*n的矩阵 r = randi(imax,[m,n]):同上 r = randi(imax,m,n,p,...):生成m*n*p*...的矩阵 r = randi(imax,[m,n,p,...])同上 r = randi(imax):1*1的矩阵 r = randi(imax,size(A)):和size(A)同维的矩阵 r= randi([imin,imax],...) E(:,:,3) = randn(10,5) 函数randn      生成元素服从正态分布(N(0,1))的数值与阵列格式      Y = randn(n)    %返回n*n阶的方阵Y,其元素服从正态分布N(0,1)。若n不是一标量,则显示一出错信息。      Y = randn(m,n)、Y = randn([m n])   %返回阶数为m*n的,元素均匀分布于区间(0,1)上矩阵Y。      Y = randn(m,n,p,…)、Y = randn([mn p…])%生成阶数m*n*p*…的,元素服从正态分布的多维随机阵列Y。      Y = randn(size(A))    %生成一与阵列A同型的随机正态阵列Y      randn    %该命令在每次单独使用时,都返回一随机数(服从正态分布)。
  1. 元胞数组 A = cell(1, 6) 生成一个一行六列的细胞组 A{2} = eye(3)
eye()函数常用的两种调用方式: eye(N) 生成一个N行N列的单位矩阵。、 eye(M,N) 生成一个M行N列的"单位"矩阵,主对角线元素为1,其余元素为0。 A{5} = magic(5) M = magic(n) 生成一个n*n的矩阵,矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等,阶数n必须是大于等于3的标量。 5. 结构体 books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40]) books.name books.name(1) IV. MATLAB矩阵操作 1. 矩阵的定义与构造 A = [1 2 3 5 8 5 4 6] B = 1:2:9    1到9之内相差为2的一行矩阵 C = repmat(B, 3, 1) 函数 repmat * 格式 B = repmat(A,m,n)       %将矩阵A复制m×n块,即B由m×n块A平铺而成。 * B = repmat(A,[m n])      %与上面一致 B = repmat(A,[m n p…])   %B由m×n×p×…个A块平铺而成 repmat(A,m,n)           %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 D = ones(2, 4) ones的作用是产生全1矩阵 ones(N)是产生一个N*N的全1矩阵 2. 矩阵的四则运算 A = [1 2 3 4; 5 6 7 8] B = [1 1 2 2; 2 2 1 1] C = A + B D = A - B E = A * B'  矩阵乘法 F = A .* B 矩阵内对应数字相乘 G = A / B     % B * G = A H = A ./ B 3. 矩阵的下标 A = magic(5) B = A(2,3) C = A(3,:) D = A(:,4) [m, n] = find(A > 20) V. MATLAB逻辑与流程控制 1. if ... else ... end A = rand(1,10) limit = 0.75; B = (A > limit);   % B is a vector of logical values if any(B)   fprintf('Indices of values > %4.2f: \n', limit);   disp(find(B)) else   disp('All values are below the limit.') end 1、代码 [plain] view plain copy 1. >> fprintf('你好呀。我要输出%d\n',3) 2、效果 [plain] view plain copy 1. 你好呀。我要输出3   matlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数 2. for ... end k = 10; hilbert = zeros(k,k);      % Preallocate matrix for m = 1:k     for n = 1:k         hilbert(m,n) = 1/(m+n -1);     end end hilbert 3. while ... end n = 1; nFactorial = 1; while nFactorial < 1e100     n = n + 1;     nFactorial = nFactorial * n; end n factorial(69) factorial(70) prod(1:69) prod(1:70) 4. switch ... case ... end mynumber = input( 'Enter a number:' ); switch mynumber     case -1         disp( 'negative one' );     case 0         disp( 'zero' );     case 1         disp( 'positive one' );     otherwise         disp( 'other value' ); end VI. MATLAB脚本与函数文件 1. 脚本文件 myScript 2. 函数文件 mynumber = input('Enter a number:'); output = myFunction(mynumber) VII. MATLAB基本绘图操作 1. 二维平面绘图 x = 0:0.01:2*pi; y = sin(x); figure plot(x, y) title('y = sin(x)') xlabel('x') ylabel('sin(x)') xlim([0 2*pi]) x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); figure [AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); set(get(AX(1),'Ylabel'),'String','Slow Decay') set(get(AX(2),'Ylabel'),'String','Fast Decay') xlabel('Time (\musec)') title('Multiple Decay Rates') set(H1,'LineStyle','--') set(H2,'LineStyle',':') 2. 三维立体绘图 t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) xlabel('sin(t)') ylabel('cos(t)') zlabel('t') grid on axis square 3. 图形的保存与导出 % (1) Edit → Copy Figure % (2) Toolbar → Save % (3) print('-depsc','-tiff','-r300','picture1') % (4) File → Export Setup VIII. MATLAB文件导入 1. mat格式 save data.mat x y1 y2 clear all load data.mat 2. txt格式 M = importdata('myfile.txt'); S = M.data; save 'data.txt' S -ascii T = load('data.txt'); isequal(S, T) 3. xls格式 xlswrite('data.xls',S) W = xlsread('data.xls'); isequal(S, W) xlswrite('data.xlsx',S) U = xlsread('data.xlsx'); isequal(S, U) 4. csv格式 csvwrite('data.csv',S) V = csvread('data.csv'); isequal(S, V) Published with MATLAB® 7.14
上一篇:函数返回列表


下一篇:Matlab kmeans聚类