台湾大学系列 MATLAB学习笔记(一) 矩阵与基本操作

导言:这门课说实话我看了得有一遍,之前matlab也用过一段时间.奈何我忘性太大,工具一段时间不用就不熟悉了,遂决定重新启动matlab的学习,虽说有内置教程,但是先拿视频课程过一遍大概,方便我自己日后复习,也在这里做一个分享罢了.

同样的,我还找到了一些关于matlab的书籍,部分内容会更新到matlab学习案例的后面部分(如果有的话)

MATLAB学习笔记(一) 基本操作

台湾大学 郭彦甫   课程地址

0.课程安排

目录

目录

MATLAB学习笔记(一) 基本操作

1.matlab应用界面

2.基本运算

3.变数(变量)种类

4.numeric 格式显示

 5.删除变量

6.arrry:matrix and vector 矩阵和向量

6.1向量

6.2矩阵

 6.3 array indexing 重要

7.冒号命令colon 

8.矩阵操作

8.1拼贴 A B(简单理解)

8.2元素计算操纵

8.3特殊矩阵

 8.4 常用操作列优先

介绍一下find函数,十分有用

8.5保存和读取

扩展 矩阵运算(取三角.重塑)



1.matlab应用界面

没什么好讲的,自己随便点点看就知道

1)主页选项卡

matlab在这里读取档案资料(之前还没注意过) 

2)绘图选项卡

画各种图案,挺好玩的. 

再次感叹其强大.... 

3)app选项卡

各种功能

2.基本运算

2.1四则运算

addition+
subtraction-

multiplication

*
division/
power^
default output variableans

左除和右除

  1. 左除(left division):用符号\表示。假设我们有一个线性方程组AX = B,其中A是一个m×n矩阵,X是一个n×1列向量,B是一个m×1列向量。我们可以使用左除来求解X,即X = A \ B
  2. 右除(right division):用符号/表示。假设我们有一个线性方程组XA = B,其中A是一个n×m矩阵,X是一个1×n行向量,B是一个1×m行向量。我们可以使用右除来求解X,即X = B / A
  3. 2/4=0.5
  4. 4\2=2

2.2常用运算指令(对数要通换底任意求值 ex log4(2)=log2/log4)

exp()e指数
log()loge()
log10()lg()
sqrt()开根号

练习题

cos(sqrt((1+2+3+4)^3/5))

 sin(sqrt(pi)+log(tan(1)))

2^(3.5*1.7)

exp(sin(10))

2.3查询变量

whoall varibles
whosvar and value
help name求助关于name的信息

3.变数(变量)种类

简略介绍

defeault 为 double  

4.numeric 格式显示

 利用format控制变量显示

分号不显示运算结果

 5.删除变量

假设已有变量a,b,c,d

要删除a

则clear a

clear xdell single x
clear allclear all var
clc清屏
   clear 变量
   clear name1 ... nameN
 
   delete 用于文件删除

6.arrry:matrix and vector 矩阵和向量

6.1向量

行向量row vector

[1 2 3 4]

列向量column vector

[1 ;2 ;3 ;4]

6.2矩阵

A=[1 21 6;5 17 9;31 2 7 ]

 6.3 array indexing 重要

我发现在各种操作中matlab似乎是列优先的,比如说sum(A)是对列求

0.indexing要用圆括号()

且way1是竖式计数的

索引全部用:

  •   way1
  • 取元素A(row,line)//开始于1,不同于python的地方
  • A( [1 3],[1 3] )  //  1 31/6  7
  • way2
  • 取元素A(x)
  • A(3)  //  31
  • A(  [1 2 3 1 ] )
  • A(   [ 1 3;1 3]  )  //  1 31/1 31
clear
a=[ 1 59 6 4 5;5 6 8 1 2;5 6 21 4 8;1 5 6 9 7; 1 2 3 4 0]
% 取竖列前六个
a([1 2 3 4 5 6])            %way1  a(x)
a([1:5],1)                  %way2 a(row,line)
% 中心9个
a([2:4],[2:4]);
%最后的0
a(25);
a(5,5);
a([5],[5]);
%第二行的第一个和第三个
a(2,[1 3])

% 怪怪但是合法的写法
a([1:5 1]) ;                %way1(没加逗号.但是1:5 1 意味着前五个+第一个)_

练习

a=[1 21 6;5 17 9;31 2 7]
% a(1,2)=76;
% a(3,2)=0;
a([4,6])=[76,0];
a([1 2],[2 3])=0;
a(3,:)=[]

7.冒号命令colon 

1.linsapce(a,b)//a-b 100 nodes ave

2.linspace(a,b,n)//a-b n noedes ave

3.x=1:0.1:10

4.y=[1:10;3:13;9:19]

8.矩阵操作

8.1拼贴 A B(简单理解)

[A B] rowadd 横着拼接

[A;B] lineadd 竖着拼接

8.2元素计算操纵

  1.  A*B就是线性代数式的相乘
  2. A.*B是元素逐个相乘
  3. A/B就是A*INV(B)
  4. A./B就是元素逐个相除
  5. A与a进行点除,除是一样的
  6. A^2andA.^2不一样,第一个A*A,第二个是元素乘
  7. sin(A)

关于矩阵除法参见
实际上这是一个解方程的做法

a/b→bx=a

a\b→ax=b

8.3特殊矩阵

 8.4 常用操作
列优先

clear
a=[1 2 3;5 9 7;11 5 3]

max(a);
max(max(a));
min(a);
min(min(a));

sum(a);
sum(sum(a));

mean(mean(a));

sort(a);%每个coloum列单独运行
sortrows(a);%对whole row排序感觉不会用的上

size(a);
[x,y]=size(a)

find(a==5)
find(a==11)
find(a>3)
find(a<5,3)%前三元素

介绍一下find函数,十分有用

k = find(X)
k = find(X,n) 前n个非0元的下标
k = find(X,n,direction)
[row,col] = find(___)
[row,col,v] = find(___)

先定义数组/矩阵x
x=[1 2 3;4 5 6;7 8 9]

case1:
find(x) 非0元索引返回
find(~x)
find(x,5) 前五个非0元索引返回

case2:
find(x<2)
find(x==5,5) 前五个<5元素索引序列返回

X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21]
[row,col] = find(X>0 & X<10,3)
[row,col,vector] = find(X>0 & X<10,3)%注意这时候vector会返回01布尔矩阵

这是我们想要的功能,find接受三个输出时所不具备的

a=[1 2 3 ;4 5 6;7 8 9]
[m,n,var]=find(a>3)
b=[ ];
for i=1:length(m);
    b(i)=a(m(i),n(i));    
end
b

额外的

a=b(b>4)索引查询方式

a(a>22)=1%全部替换

8.5保存和读取

要使用这种文件路径表示方式,你需要了解文件和文件夹在计算机上的组织结构。以下是一些基本步骤,帮助你使用文件路径表示法:

  1. 确定驱动器:首先,你需要知道文件或文件夹位于哪个驱动器(例如,C盘、D盘等)。在Windows资源管理器中,可以看到所有可用的驱动器。
  2. 确定文件夹层级:接下来,找到文件或文件夹在驱动器中的位置。通常,文件和文件夹会按照层级结构进行组织。例如,一个文件夹可能位于D盘的一个名为"学习资料"的文件夹内,而该文件夹又位于名为"中文"的子文件夹中。
  3. 构建文件路径:将驱动器名称、路径分隔符(反斜杠)和文件夹名称组合在一起,形成完整的文件路径。例如,上述例子中的文件路径为:D:\学习资料\中文
  4. 添加文件名(可选):如果你需要表示一个具体的文件,可以在文件路径末尾添加文件名和扩展名。例如,如果你要表示一个名为"课程笔记"的Word文档,文件路径将变为:D:\学习资料\中文\课程笔记.docx

工作区中

保存命令 save name var

读取变量 load name 

save D:\homework name var

Addendem 

A1.矩阵数学运算

a=[1 89 3;4 5 6;7 8 9]
sin(a)

A2.字符串

a="字符串类型"%""创建string
a1='字符类型'%''创建char
class(a)
class(a1)%显示变数类型class()
A=[a;a;a+a]%string可以+,char不行
strlength(A)%string矩阵函数求元素长度
A1=[a1;a1;a1]
length(A1)
length(a1)
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习MATLAB时,编写学习笔记是一种很好的方法,可以帮助您记录重要的概念、语法和技巧,以及解决问题的步骤。以下是一些关于编写MATLAB学习笔记的建议: 1. 组织结构:使用清晰的标题和分节来组织您的学习笔记。将不同的主题分成单独的部分,并使用子标题来进一步细分内容。 2. 内容概要:在每个部分或子标题下,写下该主题的概要。这样可以帮助您回顾和理解该主题的关键点。 3. 示例代码和输出:对于每个主题,包括一些示例代码和相应的输出结果。这有助于您理解和演示具体的MATLAB语法和功能。 4. 问题与解答:如果您在学习过程遇到了一些困惑或问题,将其记录下来,并在笔记提出并解答这些问题。这样可以帮助您深入思考并加深对该主题的理解。 5. 笔记补充:除了基本概念和语法外,您还可以添加一些额外的笔记,如最佳实践、编程技巧、常见错误等。这些额外的笔记可以提供更多的实用信息和提示。 6. 参考资料:在您的学习笔记,包括引用的参考资料,如教程、文档、书籍或网站链接。这样,您可以随时回顾并深入研究相关的主题。 7. 总结和复习:在学习笔记的结尾,添加一个总结部分,回顾和总结您学到的重点和关键概念。此外,定期复习您的学习笔记也是加深理解和记忆的好方法。 以上是关于编写MATLAB学习笔记的一些建议。希望这对您有所帮助,并祝您在MATLAB学习过程取得成功!如果有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值