【问题标题】:How to remove last n elements of a matrix in matlab?如何在matlab中删除矩阵的最后n个元素?
【发布时间】:2016-08-03 02:00:33
【问题描述】:

我有一个顺序矩阵363 X 726。现在我想删除列主要格式的最后 1394 个元素,以便我可以使用 MATLAB 将其重新排列为 512 X 512 矩阵。简单地说,我想执行我之前的问题中看到的操作的反转:How to resize an image by adding extra pixels using matlab。如何在 MATLAB 中做到这一点?

【问题讨论】:

  • 您如何确定要删除哪些 1394 个元素?行专业?专栏专业?随机的?随意的?如果信息很重要怎么办?
  • 不是特定的行或列,而是矩阵中的最后 1394 个元素,为什么是因为 (363*726=263538) - (512*512=262144) = 1394。所以我想删除最后的 1394匹配矩阵尺寸的元素。该矩阵与图像有关,因此,如果我删除随机元素,信息将丢失。当然我不需要那些最后的元素,因为它们是我自己手动添加的一些操作。@excaza
  • "last" 对于一维以上的数组没有特定含义,因此问题
  • stackoverflow.com/questions/36484804/… 请参阅上面的链接,以清楚地了解我要说的内容。我只想做反向操作。
  • 那仍然没有回答问题。

标签: matlab matrix


【解决方案1】:

假设您要操作的矩阵称为B,您也可以只执行B = reshape(B(1:512*512), 512, 512);。不需要临时变量,索引会隐含删除最后 1394 个元素。

【讨论】:

  • @sai 没问题。当您准备好时,请记住接受我们的任一答案,让社区知道您不再需要帮助。祝你好运!
【解决方案2】:
A = rand(363,726);        % matrix of random elements with size 363x726 
A(end-1393:end)=[] ;     % removing last 1394 elements
A = reshape(A,[512 512]); % Rearranging it into 512 rows and 512 columns

【讨论】:

  • 谢谢@Sardar_Usama
猜你喜欢
  • 1970-01-01
  • 2012-01-06
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
  • 2020-06-27
相关资源
最近更新 更多