Matlab函数积累

写在前面:记不清的时候直接查help xxx

1.max(a)/min(a)

若a为矩阵,则会默认输出矩阵每一列的最大/小值

        可用max(max(A))求矩阵内最大元素,也可以用先将A变列向量:A(:) 然后max(A(:))

另有用法,取两个维度相同的矩阵 m*n

max(B, C)会输出一个m*n选取两个矩阵中相同位置较大元素作为新元素的矩阵。

另:max(B, C, D)会报错

max(A, [], 1)会得到每一列最大值组成的行向量,1的意思是从A的第一维度来取值。(1换2相反)

2.ind:取下标(这里只是一个固定变量名)

例子:关于吴恩达5-3中预定义a = [1 15 2 0.5]后取val = max(a)

[val,ind]= max(A) 输出为 (经验证,此处val可以不实现赋值,ind也可以用任意变量名替换)

val = 15

ind = 2

(经验证,若a为矩阵,则相同输出语句会输出每一列的最大值以及它在每一列的位置)

如:A = [1 2 3; 4 5 6]

>> [val, ind] = max(A)

val =

     4     5     6


ind =

     2     2     2

探究:

>> ind(max(a))
未定义与 'double' 类型的输入参数相对应的函数
'ind'。
 
>> [15, ind] = max(a)
错误: 不支持将函数输出赋给此表达式。
 
>> [max(a), ind]
函数或变量 'ind' 无法识别。

 >> [max(a), ind] = 15
输出参数太多。

>> [max(a), ind] = max(a)
数组索引必须为正整数或逻辑值。

3.find

用法

例1(向量中):

a = [1 15 2 0.5]

find(a < 3)

输出

ans =

     1     3     4

find(max(a))

输出

ans =

     1

例2(矩阵中):(A是4中例子的函数magic(3))

需要给出两个列向量分别去储存行和列

[r, c] = find(A >= 7)

r =

     1
     3
     2


c =

     1
     2
     3

4.magic(机器学习中不常用)

生成“幻方矩阵”(经数学运算后得到的行列对角线加起来相同的矩阵)

(matlab是按照固定算法生成的,因此每次得到的幻方矩阵是同一个)

例子:

A = magic(3)

输出
A =

     8     1     6
     3     5     7
     4     9     2
5.sum/prod函数

(矩阵时得列和,列积)

sum(A,1)得一个行向量记录A的列和(1换2相反)

6.floor/cell函数:floor对元素逐个向下取整,cell向上

7.rand函数:生成元素在0,1随机生成的数表

如rand(3,2) rand(3)

8.eye

9.'.运算’

A = magic(9)

可求出主对角线的元素和:sum(sum(A.*eye(9)))

副对角线的元素和:sum(sum(A.*fliupd(eye(9))))

10.flipud表示使矩阵垂直翻转

11.for

可以

for i = 1:10

也可以

indices = 1: 10

        for i = indices这样用

12.while

while true

13.cell用{ }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值