我是靠谱客的博主 大力紫菜,最近开发中收集的这篇文章主要介绍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('你好呀。我要输出%dn',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基础的全部内容,希望文章能够帮你解决Matlab基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部