二十分钟快速入门Matlab

二十分钟快速入门Matlab

Matlab的确是一款强大的建模软件,如果在这之前你已经具备一些计算机语言基础,那么接下来的挑战对你来说就是小儿科了。接下里我想用简单的语言把Matlab的最常用的基础语法理一遍。

基本的概念

写注释一般是用%,后面直接写注释,不会影响代码的运行

%hello world

两个清空clear是把所有清楚所有的变量;clc是屏幕所有的额内容,但是变量不变
变量赋值这里的赋值就是把名字写出来,然后用等号直接给数字

Matlab=66.66
Matlab =
   66.66

字符串把想要用的句子用引号扩起来

a='hello world'
a =
hello world

矩阵和数组

因为Matlab是一款和数学联系很大的软件,矩阵、数组可以说是Matlab的特色也可以说是他的核心功能之一。
数组简单来水外面一个中括号,元素间用,隔开,想要分行用;来实现

%数组
a=[1,2,3,4,5,6]
a =

   1   2   3   4   5   6

a=[1,2,3;4,5,6]
a =

   1   2   3
   4   5   6

%上面这个叫结构数组,这里补充一个细胞数组,他可以把不同的数据类型放在一起
a={
    
    [1,2,3,4],'good';33,'bad'}
a =
{
    
    
  [1,1] =

     1   2   3   4

  [2,1] = 33
  [1,2] = good
  [2,2] = bad
}

矩阵矩阵是数学中常用的一个形式,Matlab中常用的有几个自动生成矩阵的方法记一下,其他的要用的时候查百度就可以的。% 创建矩阵
zeros(全零)、ones(全一)、eye(中间一两边零)、rand(随机)、randn(有负随机)

%矩阵
zeros(3,3)
ans =
   0   0   0
   0   0   0
   0   0   0
ones(3,3)
ans =
   1   1   1
   1   1   1
   1   1   1
   eye(3,3)
ans =
   1   0   0
   0   1   0
   0   0   1
rand(3,3)
ans =
   0.8881   0.7350   0.8788
   0.9488   0.5038   0.1468
   0.6676   0.4057   0.6665
randn(3,3)
ans =
   0.8830   0.2095   0.3280
   0.5720  -1.0492   2.3335
   0.2689   0.3328  -0.1323

索引运算如果想要知道矩阵中的某一个数组怎么做呢?就用在括号里写明白几行几列就可以的;如果想要提取第几行第几列就可以用:,2:4,1:3这个就表示2到4行,1到3列。如果是:表示所有行所有列

a = [1,2,3; 4,5,6; 7,7,8]
a =
   1   2   3
   4   5   6
   7   7   8

a(1,2)
ans = 2

a(1:2,2:3)
ans =
   2   3
   5   6

a(1:2,:)
ans =
   1   2   3
   4   5   6

基本运算

简单的数运算

3+2
ans = 5
3*2
ans = 6
3/2
ans = 1.5000
3-2
ans = 1
3**2
ans = 9

矩阵的计算
矩阵简单的加减乘除求方

a=[1,2;3,4]
a =

   1   2
   3   4

a*3
ans =

    3    6
    9   12

a+a
ans =

   2   4
   6   8

a*a
ans =

    7   10
   15   22

a.*a
ans =

    1    4
    9   16

除此之外,还有几个常用的计算指令,比如说求和、倒置

m=[1,2,3;4,5,6;7,8,9]
m =

   1   2   3
   4   5   6
   7   8   9
m=m'%倒置
m =

   1   4   7
   2   5   8
   3   6   9

sum(m)%求每列的和
ans =

   12   15   18

sum(m,2)%求每行的和
ans =

    6
   15
   24

diag(m)%如果是对角线可以先用diag函数求出对角线
ans =

   1
   5
   9

流程控制语句–选择、循环

选择结构
主要分为if和switch,重点是if,主要是由if、else、elseif、end组成的,表示如果符合条件就这么干,否则看下一步,下一个不行再看下个,所有都不行就不执行了。注意一定最后要用end结尾

%if
N=0.5
n=rand %随机生成一个数
if n < N
   disp('aa')
elseif n< .3
   disp('bb')
else 
   disp('cc')
end 

%switch
switch 2
case 2
    y=4
case 4 
    y=5
end 
y =
2 

循环结构
常用的有两种,for和while,就是重复做一件事,for是给定一个范围做超出就不做了;while是看给的条件,符合就做,不符合就不做,一般都是用end结尾的。

%1+2+···+100,即从1加到100
s=0
for i= 1:100
    s=s+i
end 
s
s=
5050

%while
n=1
while n<10
    n=n+1
end
n = 2
n = 3
n = 4
n = 5
n = 6
n = 7
n = 8
n = 9
n = 10

文件I/o

使用save/load
save用于保存文件,根据不同的指令可以把文件保存成为不同的格式

savefile =' pafile.mat';
p=rand(1,10);
q=ones(10);
save (savefile,'p','q')

load用于把数据重新载入

%把一个4列矩阵保存在ascii文件,然后把数据重新载入
a=magic(4);
b=ones(2,4) * -5.7;
c=[8,6,4,2];
save -ascii mydate.data a b c
clear a b c
load mydata.dat 

读写文本
fopen打开文件
fscan从文件里读出数据
fprintf文件打开后进行的一个写操作,可以把东西写进文件里
fclose关闭文件

%
tempstr='78.F 72.F 64.F 66.F 49.F';%这个摄氏度的小圆圈我不会打,用.代替
fid=fopen('temperature.dat','w+');
fprintf(fid,"%s',tempstr);
%返回到文件头

%读取文件中的数据
frewind(fid);
degrees=char(176)
num_temps =fscanf(fid,['%d',degrees 'F'])
num_temps =
78
72
64
66
49

参考资料
精通Matlab科学计算与数据统计应用–赵彬、陈明等著
Matlab从入门到实践–谢龙汉、蔡思祺著
Matlab R2017b快速入门–过了即是客博文

猜你喜欢

转载自blog.csdn.net/weixin_47567401/article/details/113278297
今日推荐