2016-08-02 5 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

マトリックス(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

関連する問題