2016-08-02 1178 views
0

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

+0

你如何确定要去除哪些1394元素?行主?列优先?随机?任意?如果信息很重要呢? – excaza

+0

不是特定的行或列,而是矩阵中的最后1394个元素,为什么因为(363 * 726 = 263538) - (512 * 512 = 262144)= 1394.所以我想删除最后1394个元素以匹配矩阵维度。该矩阵与图像有关,所以如果我删除了随机元素,信息将会丢失。当然,我不需要这些最后的元素,因为它们是由我自己手动添加用于某些操作。@excaza – sai

+0

“last”没有具有多于一个维度的数组的具体含义,因此问题请参阅下面的示例代码: – excaza

回答

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 
+0

谢谢@Sardar_Usama – sai

3

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

+0

谢谢! @rayryeng – sai

+0

@sai没问题。只要你准备好了,请记住接受我们的答案,让社区知道你不再需要帮助。祝你好运! – rayryeng

相关问题