Matlab旅程(完整版)

目录

0 主要内容

1 MATLAB的发展  

2 MATLAB的优点

3 MATLAB的工作环境 

3.1 命令窗(command window)

3.2 图形窗(figure window)

3.3 文本编辑窗(file editor)

4 帮助系统

5 代码系统总结 


0 主要内容

MATLAB的发展 MATLAB的优点 MATLAB的工作环境 帮助系统 代码系统总结

MATLAB的发展  

美国 Mathworks 公司 于1984年正式推出, 随后逐次升级。目前通常每年更新两次,例 如2018a,2018b。用于 数值计算和图形处理 的系统环境。 MATLAB MATrix LABoratory )是一种 以矩阵运算为基础的交互式程序语言。 只有一种数据类型,一种标准的输入输出 语句,不需编译。

MATLAB的优点

除具备卓越的数值计算能力外,还提供专业水 平的 符号计算、文字处理、可视化建模仿真和 实时控制 等功能。每个 变量代表一个矩阵 ;每 元素都看作复数 ;所有运算都对矩阵和复数 有效;指令表达式与数学、工程中常用的形式 非常相似。 友好的工作平台和编辑环境 :许多工具采用 图形用户界面,包括 MATLAB 桌面和一些窗 口,例如命令窗口、编辑器和调试器等;程 序不必经过编译就可以直接运行,能及时报 告出现的错误并分析错误的原因。 简单易用的程序语言 MATLAB 是一种高 级的矩阵 / 阵列语言。 语法特征更符合 科技 人员对 数学表达式的书写格式 ,非常适合非 计算机专业的人员使用。 强大的科学计算和数据处理能力 :包含600 多种数学运算函数,可以方便地实现用户所 需的各种计算功能。例如 矩阵、特征向量、 傅里叶变换、线性方程求解、微分方程求解、 复数、三角函数、多维数组运算 等。矩阵的 行数、列数无需事先定义。 强大而简易的绘图功能 :能根据输入数据自 动确定坐标绘图;能规定多种坐标系;能绘 制三维坐标中的曲线和曲面;可设置不同的 颜色、线型和视角等。 功能丰富,可扩展性强 有丰富的内部函数 和工具箱。工具箱包括信号处理、图像处理、 控制系统、神经元网络、小波分析、金融等, 几乎涉及各个方面。

MATLAB的工作环境 

进入工作环境 :双击 MATLAB 图标。 退出工作环境 exit quit 或直接关闭。 MATLAB 有很多窗口,用来实现不同的功能, 例如 命令窗 、历史命令窗、当前目录窗、工作 空间管理窗、 图形窗 文本编辑窗 等。  
  1. 是路径文件夹选择
  2. .是当前文件夹显示
  3. 是点击文件夹的某一文件,可以具体显示
  4. 命令行窗口
  5. 显示命名行窗口的变量和值
  6. 本图中被隐藏了,历史代码显示

Matlab旅程(完整版)

 

3.1 命令窗(command window)

是对MATLAB进行操作的主要载体。默认情况下,启动MATLAB时就打开命令窗。

MATLAB 的所有函数和命令都可以在命令 窗执行。 程序的运行结果(除图形外)都显示在命令 窗。

3.2 图形窗(figure window)

显示图形的窗口。执行绘图命令后自动弹出。

3.3 文本编辑窗(file editor)

编写和修改文件程序的窗口。

4 帮助系统

命令窗口的帮助系统。 help :查找所有命令或函数的使用方法。 形式: help +函数名 look for :在不知道某命令或函数的确切名称 时查找其功能。 形式: look for +关键字

 

5 代码系统总结 

%%==============I. 清空环境变量及命令==================
clear all   % 清除Workspace中的所有变量
clc         % 清除Command Window中的所有命令

%%==============II. 变量命令规则=======================
%%
%====1. 变量名区分大小写====
A = 2
a = 3

%%
%====2. 变量名长度不超过63位====
 ABCDEFGHIJKLMNOPQRSTUVWXYZ123456ABCDEFGHIJKLMNOPQRSTUVWXYZ123456 = 3

%%
%=====3. 变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点====
% 3A = 4
% .a = 5
% /b = 5
a_2 = 3
% a.2 = 4

%%
%====4. 变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义====
A = rand(3,5)
rows = size(A, 1)
cols = size(A, 2)

%%==============III. MATLAB数据类型===========================
%%
%====1. 数字=====
2 + 4

10 - 7

3 * 5

8 / 2

%%
%====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'%转置
C = A(:)%列向量
D = inv(A)%逆
A * D

E = zeros(10,5,3)
E(:,:,1) = rand(10,5)
E(:,:,2) = randi(5, 10,5)
E(:,:,3) = randn(10,5)

%%
%====4. 元胞数组====
A = cell(1, 6)
A{2} = eye(3)
A{5} = magic(5)
B = A{5}

%%
%====5. 结构体====
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40])
books.name
books.name(1)
books.name{1}

%%============IV. MATLAB矩阵操作=============================
%%
%=====1. 矩阵的定义与构造====
A = [1 2 3 5 8 5 4 6]
B = 1:2:9
C = repmat(B, 3, 1)%复制,将B复制成3行1列
D = ones(2, 4)

%%
%====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     % G * B = A     G * B * pinv(B) = A * pinv(B)    G = A * pinv(B)
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))%dis输出
else
  disp('All values are below the limit.')
end

%%
%====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)


 

 

上一篇:【指纹识别】基于模板匹配算法实现指纹识别matlab源码


下一篇:【TSP问题】基于改进遗传算法求解旅行商问题matlab源码