许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  matlab语言入门:基础语法与快速上手

matlab语言入门:基础语法与快速上手

阅读数 32
点赞 0
article_banner

matlab语言入门

一.基本操作

1.清除操作

clear; 清除工作区所有文件

clc; 清除命令行内所有显示的文字

2.一些快捷键

ctrl + R 注释

ctrl + T 取消注释

ctrl + C 中断  命令行调试

在命令行按上键可以调出历史命令

3.一些关于matlab的常识

在每句的末尾加上分号是不显示这句话的结果

matlib是区分大小写的

Inf表示无穷

4.输入输出

input输入,disp输出

a = input('请输入一个数字:');
disp(a)

5.字符串操作

在matlab字符串都是用单引号包起来的。

字符串的 合并  

第一种方法:

a = strcat('请输入','一个数字')
输出:
a =

请输入一个数字

第二种方法:

a = ['请输入','一个数字']
输出:
a =

请输入一个数字

将数值转化为字符串的形式,然后就可以和其他的字符串去拼接:

a = 2;
a = num2str(a); %转化为字符串的形式
disp(strcat('数字是',a))
输出:
数字是2

二.向量操作

6.向量的表示

行向量:

a = [1 2 3]
a = [1,2,3]
输出:
a =

     1     2     3

列向量:

a = [1;2;3]
输出:
a =

     1
     2
     3

矩阵:

a = [1 2 3;4 5 6;7 8 9]
输出:
a =

     1     2     3
     4     5     6
     7     8     9

7.向量的求和sum函数和求积的prod函数
a = [1 2 3;4 5 6;7 8 9]
sum(a)
输出:
ans =

    12    15    18

可见sum函数默认是按列求和的,把每列的元素求和,生成一个行向量。

这是因为默认的维度dim = 1,若是设置dim = 2 则是按行求和,生成一个列向量。

a = [1 2 3;4 5 6;7 8 9]
sum(a,2)
输出:
ans =

     6
    15
    24

那怎么将矩阵内所有元素相加呢

a = [1 2 3;4 5 6;7 8 9]
sum(sum(a,2))   %第一种方法
sum(a(:))   %第二种方法
输出:
ans =

    45

类比于sum函数,求乘积的prod函数,直接使用是每一列求乘积。

a = [1 2 3;4 5 6;7 8 9]
prod(a)
输出:
ans =

    28    80   162

维度为2时是每一行求乘积:

a = [1 2 3;4 5 6;7 8 9]
prod(a,2)
输出:

ans =

     6
   120
   504

8.向量的求最大值函数max和求最小值函数min

直接使用的话输出每一列的最大值或这最小值

a = [1 2 3;4 5 6;7 8 9]
max(a)
min(a)
输出:
ans =

     7     8     9


ans =

     1     2     3

可以指定维度,但是和sum函数略有不同

a = [1 2 3;4 5 6;7 8 9]
max(a,[],2)
min(a,[],2)
输出:
ans =

     3
     6
     9


ans =

     1
     4
     7

甚至可以直接找到每一行的最大最小值的位置

a = [1 2 3;4 5 6;7 8 9]
[max_number,max_point] = max(a,[],2)
[min_number,min_point] = min(a,[],2)
输出:
max_number =

     3
     6
     9
     
max_point =

     3
     3
     3

min_number =

     1
     4
     7

min_point =

     1
     1
     1

9.取矩阵的元素

取矩阵的某一元素,例如第二行第三列的元素

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2,1)
输出:
ans =

     6

取矩阵的某一行

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2,:)
输出:
ans =

     6     7     8     9    10

取矩阵的某两行

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a([1,2],:)
输出:
ans =

     1     2     3     4     5
     6     7     8     9    10

取矩阵的二到四行

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2:4,:)
ans =

     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20

取矩阵的第二行到最后一行

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2:end,:)
输出:
ans =

     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20
    21    22    23    24    25

从第一行开始每隔一行取一行

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(1:2:end,:)
输出:
ans =

     1     2     3     4     5
    11    12    13    14    15
    21    22    23    24    25

对于列来说的话也是一样,就不再赘述

9.描述矩阵大小的size函数

size函数返回两个值,一个是矩阵的行数(r),一个是列数(c)

a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
[r,c] = size(a)
输出:
r =

     5


c =

     5
     
% r = size(a,1)
% c = size(a,2)

10.重复矩阵的repmat函数

repmat(A,m,n)函数可以将函数按照块来复制,复制成m*n块

a = [1 2 3;4 5 6;7 8 9]
b = repmat(a,2,1)
b = repmat(a,3,2)
输出:
b =

     1     2     3
     4     5     6
     7     8     9
     1     2     3
     4     5     6
     7     8     9
     
b =

     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9
     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9
     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9

11.求逆函数inv

没什么可讲的,直接求逆运算

a = [1 2 3;4 5 6;7 8 9]
inv(a)
输出:
ans =

   1.0e+16 *

    0.3153   -0.6305    0.3153
   -0.6305    1.2610   -0.6305
    0.3153   -0.6305    0.3153

12.乘除乘方运算,和点乘点除点乘方运算

除法就相当于乘以另一个矩阵的逆

点乘和点除或者点乘方相当于是两个矩阵的对应元素做乘除法

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


13.求特征值和特征向量eig函数

直接输出特征值:

a = [1 2 3;4 5 6;7 8 9]
eig(a)
输出:
ans =

   16.1168
   -1.1168
   -0.0000

输出特征向量和特征值(V特征向量,D特征值):

a = [1 2 3;4 5 6;7 8 9]
[V,D] = eig(a)
输出:
V =

   -0.2320   -0.7858    0.4082
   -0.5253   -0.0868   -0.8165
   -0.8187    0.6123    0.4082


D =

   16.1168         0         0
         0   -1.1168         0
         0         0   -0.0000

14.查找find函数

直接使用是不为0的元素的索引

a = [1 2 3;4 5 6;7 8 9]
find(a)
输出:
ans =

     1
     2
     3
     4
     5
     6
     7
     8
     9

找出前三个不为0的数的索引

a = [1 2 3;4 5 6;7 8 9]
find(a,3)
输出:
ans =

     1
     2
     3

返回后三个呢

a = [1 2 3;4 5 6;7 8 9]
find(a,3,'last')
输出:
ans =

     7
     8
     9

输出行列 信息 ,甚至对应元素的值

a = [1 -3 0;0 0 8;4 0 6]
[r,c,v] = find(a)
输出:
r =

     1
     3
     1
     2
     3


c =

     1
     1
     2
     3
     3


v =

     1
     4
    -3
     8
     6

找到是否含有元素为10

a = [1 -3 0;0 0 8;4 0 6]
find(a == 10)
输出:
ans =

  空的 0×1 double 列矢量

15.条件判断if-else语句

话不多说,直接上语法

a = input('please input a number: ')
if a >= 80 
	disp('优秀')
elseif a >= 60
	disp('良好')
else 
	disp('退学吧')
end

16.循环语句

1到5循环

for i = 1:5
	disp(i)
end
输出:
     1

     2

     3

     4

     5



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空