日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB reshape()函数和sub2ind()函数

發(fā)布時間:2025/5/22 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB reshape()函数和sub2ind()函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

已知A為4*5的矩陣
12 3 4 7 8
5 6 9 11 13
2 1 15 20 21
10 6 11 8 9
完成如下操作:將A(2,4)的11和A(3, 2)的1刪除后,保持數(shù)據(jù)次序不變的情況下,重新整理成3行6列的矩陣數(shù)據(jù)。

輸入

輸出

3行6列的矩陣

提示

使用 reshape()函數(shù),sub2ind()函數(shù)以及“利用空矩陣刪除矩陣元素”

程序代碼

A=[12, 3, 4, 7, 8;5, 6, 9, 11, 13;2, 1, 15, 20, 21;10, 6, 11, 8, 9];B = A(sub2ind(size(A), [1 2 3 4, 1 2 4, 1 2 3 4, 1 3 4, 1 2 3 4], [1 1 1 1, 2 2 2, 3 3 3 3, 4 4 4, 5 5 5 5 ])); C = reshape(B, 3, 6); disp(num2str(C));
sub2ind()函數(shù)

將下標(biāo)轉(zhuǎn)換為線性索引

ind = sub2ind(sz,row,col)
  • 針對大小為 sz 的矩陣返回由 row 和 col 指定的行列下標(biāo)的對應(yīng)線性索引 ind。
  • 此處,sz 是包含兩個元素的向量,其中 sz(1) 指定行數(shù),sz(2) 指定列數(shù)。

首先創(chuàng)建了一個矩陣A,一個4行5列的矩陣,size(A)為獲得A矩陣的行數(shù)和列數(shù),sub2ind第二和第三個參數(shù)都是用矩陣表示的,兩個矩陣對應(yīng)的元素代表A中某個元素的行下標(biāo)和列下標(biāo)。


例如:要獲取 A(2,4)的11和A(3, 2)的1的行下標(biāo)和列下標(biāo)。

  • A(2, 4):行下標(biāo)為2,列下標(biāo)為4的元素對應(yīng)的是11,對應(yīng)的索引序號為 14
  • A(3, 2):行下標(biāo)為3,列下標(biāo)為2的元素對應(yīng)的是1,對應(yīng)的索引序號為 7

注:

  • MATLAB是按列搜索的,先搜索第一列,然后搜索第二列…。同理A中的第2行第5個的索引號為18,后面依次類推。
  • 行下標(biāo),指定為標(biāo)量、向量、矩陣或多維數(shù)組。row 的大小必須與 col 的大小相同。

如何取出A中A(2, 4),A(3, 2),輸入以下代碼即可:

B = A(sub2ind(size(A), [2 3], [4 2]));


如果要用 sub2ind()函數(shù)刪除 A(2, 4),A(3, 2)即選取出A(2, 4),A(3, 2)以外的元素,那么輸入以下代碼即可:

B = A(sub2ind(size(A), [1 2 3 4, 1 2 4, 1 2 3 4, 1 3 4, 1 2 3 4], [1 1 1 1, 2 2 2, 3 3 3 3, 4 4 4, 5 5 5 5 ]));

reshape()函數(shù)

如果需要改變矩陣的形狀,reshape(A,m,n)表示矩陣總元素保持不變的前提下,將矩陣A重新排列為m*n的矩陣。
reshape()函數(shù)只改變矩陣的行數(shù)和列數(shù),但并不改變原矩陣元素個數(shù)及其存儲順序。

使用reshape()函數(shù)將B轉(zhuǎn)換成 3行6列的矩陣

C = reshape(B, 3, 6);


參考:https://ww2.mathworks.cn/help/matlab/ref/sub2ind.html?searchHighlight=sub2ind&s_tid=doc_srchtitle

總結(jié)

以上是生活随笔為你收集整理的MATLAB reshape()函数和sub2ind()函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。