重塑矩阵(matlab reshape函数原理)

在这里插入图片描述
简单来说就是同样容量的情况下才能转换,否则就输出原矩阵
(i,j)对应了矩阵中第i*n+j个数,对应ans中idx/c,idx%c

class Solution {
    public int[][] matrixReshape(int[][] mat, int r, int c) {
    int m=mat.length,n=mat[0].length;
    if(m*n!=r*c)return mat;
      int [][]ans=new int[r][c];
   for(int i=0;i<m;i++){//(i,j)对应了矩阵中第i*n+j个数,对应ans中idx/c,idx%c
    for(int j=0;j<n;j++){
        ans[(i*n+j)/c][(i*n+j)%c]=mat[i][j];
    }
   }
  
    return ans;
    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用中提到,reshape函数总是将原矩阵A重组为新矩阵B,要求A和B的元素个数相同。重组规则是先处理低维度的,再处理高维度的。具体来说,对于要将A的行数和列数分别变为r和c的操作,先扫描A的第一列,扫描过程中行数不断发生变化,列数隔一段时间变化一次,再处理高维度,即先处理低维度(行是低维,列比行高一维)。 举个例子,如果要将一个4*6的矩阵A变为一个6*4的矩阵B,那么首先会逐列扫描A,然后逐列填充B。也就是先处理完A的第一列,在处理第二列,再处理第三列,以此类推。 综上所述,reshape函数原理是根据指定的行数和列数,按照先处理低维度再处理高维度的规则,将原矩阵重组为一个新的矩阵。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [重塑矩阵matlab reshape函数原理)](https://blog.csdn.net/qq_41884662/article/details/119672784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MATLABreshape函数](https://blog.csdn.net/xtingjie/article/details/70991097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值