您的位置 首页 > 数码极客

[Matlab如何调整矩阵维度一致]Matlab矩阵复制一个维度…

一直很纠结算法的文章应该怎么写。最后觉得还是从最简单的level开始写吧,一开始就弄些重量级的,什么人工智能,机器学习的算法,还要有大量的数学以及优化的知识,小白们估计会很郁闷,当然我也不一定能做出来对吧。

我计划每题给出两种语言的解决方案,一种静态语言,一种动态语言。

我选择C语言和python,本来考虑Java,但是篇幅有限,有兴趣的朋友自己试试

LeetCode 566. 改变矩阵的维数(reshape the Matrix)

问题描述:

在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。

给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。

重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。

如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。

注:

  1. 给定矩阵的宽和高范围在 [1, 100]。
  2. 给定的 r 和 c 都是正数。

示例:

C语言实现:

矩阵能重新调整形状,那么新的矩阵必须刚好可以容纳原矩阵的所有元素。也就意味着,新旧矩阵的行和列的乘积必须相等。

按照题目的意思,如果不能调整,那么返回原矩阵。

代码如下:

代码26~27行,如果矩阵可以调整,开始做调整操作。行列的乘积等于对矩阵元素按顺序形成新的下标。然后让其和新旧列数相除得到的就是新旧矩阵的行下标。

让其和新旧列数取余得到的就是新旧矩阵的的列下标。

获得新旧矩阵的相应行列下标,就可以完成新旧矩阵的赋值。

python语言的实现:

python的实现可以先通过列表表达式直接将矩阵转换成一个一维的数组。然后用切片平均切分成r行就完成了。

代码如下:

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“Matlab如何调整矩阵维度一致,Matlab矩阵复制一个维度,matlab,调整矩阵维度,Matlab矩阵维度必须一致怎么解决,Matlab增加矩阵维度”边界阅读