matlab如何实现降维,matlab怎么把矩阵降维

1. matlab如何对一个矩阵 求导而且不降维

gradient

计算数值梯度。

函数F(x,y,。)在(x0,y0,。)的梯度就是函数在该点的导数,通常在数学上记作▽F(x0,y0,。)或gradF(x0,y0,。)。

梯度是一个向量, 它的方向是函数在一点变化率最快的方向,而它的模就是函数沿这个方向的变化率。

在MATLAB中利用gradient计算梯度,将得到若干向量,它们指出了F的值增大的方向。

语法格式:

FX = gradient(F)

其中F是一个向量。该格式返回F的一维数值梯度。FX即∂F/∂x,即沿着x轴(水平轴)方向的导数。

[FX,FY] = gradient(F)

其中F是一个矩阵。该调用返回二维数值梯度的x、y部分。FX对应∂F/∂x, FY对应于∂F/∂y。

[FX,FY,FZ,。] = gradient(F)

这里,F是一个含有N个自变量的多元函数。

[。] = gradient(F,h)

这里的h指定了沿着梯度的方向取点的间隔。

[。] = gradient(F,h1,h2,。)

以x,y方向分别为间隔0.2求取矩阵Z的数值梯度,dZ/dx和dZ/dy分别返回到DX,DY中。

2. Matlab 二维数组Z字形降维操作

假设 data 是8*8数据矩阵

order = [

0 1 5 6 14 15 27 28

2 4 7 13 16 26 29 42

3 8 12 17 25 30 41 43

9 11 18 24 31 40 44 53

10 19 23 32 39 45 52 54

20 22 33 38 46 51 55 60

21 34 37 47 50 56 59 61

35 36 48 49 57 58 62 63

]

当然也可以把 order就建成一个向量, 这样下面就不用reshape它了

result = sortrows( [reshape(data, [], 1) reshape(order, [], 1)], 2);

结果取 result(:, 1) 是个列向量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值