Matlab日记#

一、入门概述

matlab通用命令

1.常用命令:clc、clear、disp(显示变量或文字内容)
ps(easy 不多说)
2.标点关注说明,后面都会见到相关名词3.tips:在命令行窗口中想换行输入下一条命令时,按住shift+enter,与QQ相同

二、基础知识

数据类型

1.数值类型:整数(有符号/int、无符号/uint)、浮点数(单精度single、双精度double)
2.取整函数
mark3.数据类型相关运算规律

同下
mark,供检查错误用4.复数
复数5.无穷量(Inf)和非数值量(NaN)
无穷量分正负,即Inf和-Inf;
NaN可由0/0或Inf/Inf计算,两结果不等。
6.逻辑类型
关系和逻辑表达式输入时,把任何非零数值当作真,零当作假。输出时真为1,假为0。
关系操作符注意“==”是对等号两边两个变量进行比较,两边相等时返回1,不等时返回0。
逻辑运算符
有矩阵A、B:
矩阵的与运算A&B:表示两个矩阵相应元素均非零,则该结果元素值为1,否则为0。(一假全假)
矩阵的或运算A|B:表示两个矩阵相应元素存在非零值,则该结果元素值为1,否则为0。(一真全真)
矩阵的非运算~:若矩阵元素为0,则结果为1,否则为0。
7.字符和字符串
一个字符串是存储在一个行向量中的文本,这个行向量中每一个元素代表一个字符;元素中存放的是字符的内部代码即ASCII码(十进制)。
8.函数句柄
函数调用方法:直接调用和间接调用
直接调用:被调用的函数通常称为子函数,但子函数只能被与其M文件同名的主函数或在M文件中的其他函数所调用,同时在一个文件中只能有一个主函数。(这里没太懂额,还没常用)
间接调用:使用函数句柄。一般格式:

Function_Handle = @Function_Filename

其中Function_Filename是函数所对应M文件的名称或MATLAB内部函数名称。如调用cos函数:F_Handle=@cos
9.结构体类型
创建结构体的方法:
(1)直接通过赋值语句给结构体字段赋值
赋值表达式形式:结构体名称.字段名称(1对多)

Student.Name='Sam';
Student.Grade=6;
Student.Subject={
   'Chinese','Math','English'};
Student.Result={
   99,99,99};
Student

此Student为一个1×1的结构体数组。
(2)利用struct函数创建结构体
句法形式:

StrArray=struct('field1',var1,'field2',var2,...,'fieldn',varn)
schedule(2)=struct('Day','Thursday','Time','15:00','Number',18)
schedule(1)
scheduleArray=repmat(struct('Day','Thursday','Time','15:00','Number',18),1,2) %repmat:将struct后第一个,前的内容堆叠在1×2的结构体数组中
scheduleArray(1)
scheduleArray(2)
newArray=struct('Day',{
   'Thursday','Friday'},'Time',{
   '15:00 ','9:00 '},'Number',{
   18,6})
newArray(1)
newArray(2)

10.数组类型
在MATLAB中数组与矩阵地位相同,此处介绍数组,后续介绍矩阵。矩阵是数组的子集。

Array=[1 2 3 4 5 6]
Array=i:k
Array=i:j:k
linspace(a,b,100)  %100个元素的向量
linspace(a,b,n)  %n个元素的向量
Array_a=0:5
Array_b=linspace(0,5,6)
Array_Empty=[] %创建空数组,用于逻辑运算、数组声明、数组清空

11.单元数组类型
单元(Cell)数组是一种无所不包的广义矩阵。组成单元数组的每一个元素称为一个单元。每一个单元可以包括一个任意数组,如数值数组、字符串数组、结构体数组或另一个单元数组,因而每一个单元可以具有不同的尺寸和内存占用空间。
(天呐,这段话太戳我了,这本书是真的好!《MATLAB R2016a完全自学一本通》)
(1)单元数组的创建
①赋值语句创建
用“{}”创建,“,”或空格分隔一个单元,“;”分行。
②利用cell函数创建空单元数组
创建一个m×n的空单元数组,每个单元均为空矩阵,调用格式:

cellName=cell(m,n)

(2)单元数组寻访
C(m,n)指单元数组中第m行第n列单元,C{m,n}指单元数组中第m行第n列单元。
例子来啦:

c={
   'x',[1;3;6];10,pi}
a=cell(2,2)
b=cell(1)
C={
   3,[4 7;6 6;80 9],'string';sin(pi/8),3>10,'code'}
unitVal_1=C(1,2)
class(unitVal_1)
unitVal_2=C{
   2,2}
class(unitVal_2)

(3)单元数组的操作
①合并

a{
   1,1}='cellclass';
a{
   1,2}=[1 2 2];
a{
   2,1}=['a','b','c'];
a{
   2,2}=[9 5 6];
a
b={
   'Jan'}
c={
   a b}

②删除
将单元数组第m行n列位置处单元删除:

C{
   m,n}=[]

③改变单元数组形状
将单元数组C变成一个具有M行N列的新单元数组,调用格式:

trimC=reshape(C,M,N)

基本矩阵操作

1.矩阵与数组关系辨析
矩阵以数组的形式存在,一维数组相当于向量,二维数组相当于矩阵,故矩阵是数组的子集。
2.构建矩阵的函数
特殊矩阵构建函数同上tips:
①矩阵-向量-标量 (单个实数、复数都是标量)
②空矩阵和零矩阵的区别是:空矩阵没有元素,不占用存储空间;零矩阵占用存储空间。
3.矩阵大小及结构改变
矩阵旋转及维度改变同上4.矩阵下标引用
太好了!这个图作用可太大了(1)双下标索引A(m,n),单下标索引A(k)
(2)单双下标转换:

Matrix=magic(3)
IND=sub2ind(size(Matrix),2,3)
[I J]=ind2sub(size(Matrix),7)

(3)访问多个矩阵元素
灵活使用表2-14
5.矩阵信息的获取
(1)矩阵结构
矩阵结构测试函数(2)矩阵大小
矩阵形状信息(3)矩阵数据类型
矩阵数据类型(4)矩阵占用内存
whos调用,如 whos A,即可查看A的Name、Size、Bytes、Class
6.矩阵的保存和加载
(1)矩阵寻址
①下标寻址
1)单元素寻访

A(numRow,numColumn)

2)多元素寻访

A1:m:n) %表示访问第n列的第一个元素至第m个元素
A(m,:%表示访问第m行的所有元素
A(i:j,m:n) %表示访问从第i行至第j行、从第m列至第n列的矩阵区域
A(i:inc1:j,m:inc2:n) %表示访问从第i行至第j行,行间隔为inc1行,列同理

②线性寻址(没懂,感觉和下标寻址一个意思呢)
3)元素的赋值
通常有两种情况:
· A(i,j)=value %等号左侧为矩阵中的某个元素,右侧为要替换的值
· A=[] %删除矩阵中的所有元素
4)元素的扩展与删除(即赋值的应用)

A=[1 1;2 2];
A(3,:)=3
A(4,1)=4;A(4,2)=5
A(2,:)=[]

矩阵的合并

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值