【Matlab学习笔记】基本指令介绍

0. 基础知识

获取帮助: help / help <函数名> / help win / help desk = doc

找出相关命令: look for <关键字>

类型信息
基本型数值型整型无符号uint 8/16/32/64
有符号int 8/16/32/64
浮点型单精度single
双精度double(默认)
字符串
构造型数组/矩阵只能含有同种类型, 定义[], 访问()
元胞可以含有不同类型, 定义{}, 访问{}
结构struct 域 field
符号对象

常量: 内部定义的 ans, eps( 2 − 52 2^{-52} 252), realmax, realmin, pi, version, NaN, mf, i, j, lasterr 可以赋值, 但clear all后恢复默认值

所有变量以数组/矩阵形式保存

变量类型
Local函数中定义的, 函数结束即死亡
Global在工作空间, clear后死亡(多函数可用)
Persistent类似static变量, .m文件中定义使用, clear后死亡

who 工作空间变量名

whos 工作空间变量名及其信息

whor <变量名>

clear xxx 删除xxx变量

clc 清除记录

intmax(‘int8’)

intmin(‘int16’)

realmax(‘single’)

realmin(‘double’)

class(xxx) 查看数据类型

round(xxx) 最接近整数

fix(xxx) 向0靠近的整数

floor(xxx) 小于xxx的整数

ceil(xxx) 大于xxx的整数

format short/long/… 替换输出格式

find(x) 返回非零的索引值

虚数: 2-3i (3和i之间不能有空格) / complex(2, -3)

逻辑: 0/1

三元运算
数值运算+ - * \ / ^ .+ .- .* .\ ./ .^
关系运算== ~= < <= > >= || &&
逻辑运算& | ~ any() or() not() all() xor()

1. 矩阵

数组/矩阵类型
直接构造[…], " “或”,"为行内间隔, ";"为行间间隔
增量法“:”x = i : j (默认间距1, 递增), x = i : k : j (间距k, 递增), x = i : -k : j (间距k,递减)
等差向量linspace(2, 8, 10), 2到8等差取10个数(默认100个数)
等比向量logspace(2, 8, 10), 2到8等比取10个数(默认100个数)
特殊zeros, ones, eye(单位矩阵, 默认2维), magic, rand(均匀分布随机), randn(正态分布随机), diag(对角阵)
复合B = [A, eye(3), ones(3), A .* 2]

返回矩阵行列数: size(A)

转置: ’

共轭转置: .’

A(r, c) 取r行c列元素, (r/c=":", 值全部)

A(😃 所有元素排成一列

A(😃 = D(😃 要求D, A元素数量相等, 可保持A行列形式不变替换值

x = [], 清空但不删除x

A(:, 3:4) = [], 删除3, 4列

flipud(x) 沿水平线翻转

fliplr(x) 沿垂直线翻转

reshape(A, 1, 9) 重整行列数

rot90(x) 逆时针旋转90°

det(x) 行列式

rank(x) 秩

inv(x) 逆

trace(x) 迹

eig(x) 特征向量

[U, S, V] = svd(x) SVD奇异值分解

2. 字符串

c = ‘B1-%’ c(1)为"B",

char(97)为"B"

num2str(97)为"97"

mat2str()

int2str()

a = [‘I’, ‘Am’; ‘a’, ‘uo’] = [‘IAm’; ‘auo’] 要保证每一行维数相等

strcat('I ', ‘Am’) 为"IAm", 去掉尾空格

length(a) = max(size(a))

isletter()

isspace()

findstr(A, a)

strcmp(A, B)

3. 函数句柄

f = @functionname f可代替函数名

a = f(x, y)

sq = @(x)x.^2 那么sq(5) = 25

4. 元胞

a{1} 访问第一个元素

a = {[2, 3; 3, 4], ‘str’; 42, {1}}

a = cell(3, 3)

a{3, 2} = rand(3, 4)

deal(a{:}) 查看内容

a{1, 2} = [] 删除

num2cell()

celldisp(a) 显示域

5. 结构

student(1) 访问第一个

student(1).name = ‘a’

student(2).name = ‘b’

student(1).grade = 4

student(3) = struct(‘name’, ‘c’, ‘grade’, 5)

student.name可访问所有student的name

getfield(student(1), ‘name’)

student = rmfield(student(1), ‘name’)

6. 函数

disp()

fprintf("%d", x)

for i = 1:10 … end

while … end

try … catch … end

if … elseif / else if … end

switch … case … otherwise … end

function ret=name(x) … end

pause(3) 暂停2秒

pause 暂停直到输入

.m文件
脚本文件全局变量, 无参, 无返回
函数文件local, 有参, 有返回值

nargin 实际输入个数

nargin(‘fun’) 标准输入个数

nargout 实际输出个数

nargout(‘fun’) 标准输出个数

inputname(n) 第n个输入的实际名字

varargin 变长输入

varargin(n) 第n个输入

varargout(n) 第n个输出

keyboard 中断, 出现k>>(可debug), 工作区出现local变量

标准断点 红: 有效, 灰: 无效

dbstop in file (at line No.) (命令行) dbstep运行, dbquit 推出debug

dbclear all / in file / in file at line 清除断点

dbstatus

条件断点 dbstop … if … / error / warning

profile on / profile view 分析时间

matlab优化方式: 向量化, 预定义(先声明H=zeros(5, 10000), 再赋值)

7. 数值运算

m = max(A)

[m, idx] = max(A), 此方式获得idx

max(a, b)

max(A, [], 2) 第2行中最大值

max(A, [], 1) = max(A)

sort(x) 默认升序

mean(x) 或 mean(x, dim)

median(x) 或 median(x, dim)

sum(x) 或 sum(x, dim)

std(x) 标准差

prod(x) 元素乘积

cumsum(x) 元素累和

cumprod(x) 元素累积

corrcoef(x) 相关系数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值