matlab三維矩陣裡面怎麼去掉全零行?

2025-07-22 11:00:22 字數 2346 閱讀 8892

1樓:略懂c語言

兩步:一 先判斷某行是否是0行,可以用if(any(a(:,i)))判斷第i行是否0行,any函式返回1說明不是全0,否則是全0。注意any函式是按列操作的,如果a(:,i)是行向量的話,需要對其轉置。

二 按行或列刪除矩陣的方法是a(:,i) = ;

另外,對於三維矩陣來說,a(:,1)實際上表示的是第一頁資料,而不是什麼第一行,但你這三維矩陣第二維是1,實際上退化成了二維矩陣,可以用二維矩陣180*209表示,不知道你為什麼要弄多一維出來。

matlab中,對於三維矩陣,如何去掉所有全為0的列 形成新的三維矩陣

2樓:網友

首先不為零的列不能去掉,也就是每頁的列數不能不一樣!

你可以設為nan,方法是。

a=rand(2,19,12);

a(:,1,1)=0;

a(:,15,8)=0;

a(find(a==0))=nan;

matlab 三維矩陣刪除其中一些頁

3樓:網友

刪除後50頁(應該從51頁開始你誤寫為50):

t(:,51:100)=;

matlab的陣列本來就是動態的,如果不夠大,例如你定義了50頁,但需要往100頁裡面存東西,它會自動擴充套件。但如果你已經定義了100頁,即使沒用到後面的,它也不可能隨隨便便就給你刪掉吧?這個邏輯應該不難理解。

4樓:首安夫修為

如果每次只取乙個波段進行計算的話,直接。

for m = 1:200

dr=[salinas_corrected(:,m)];

end就可以了。

每次使用dr進行計算,而dr的維數就是500×300。

matlab中三維陣列怎麼刪掉第二維的某一列

5樓:網友

只要把那一列賦值賦乙個空矩陣就可以。

用乙個3×3×3陣列,示例如下:

a=ones([3 3 3])

a(:,1) =

a(:,2) =

a(:,3) =

a(:,2,:)=

a(:,1) =

a(:,2) =

a(:,3) =

第二維第二列被全部刪除了。

6樓:不隨意

在matlab命令框中輸入以下**可以建立簡單的三維陣列:

for i=1:2

for j=1:2

for k=1:2

a(i,j,k)=i+j+k;

endend

end2要檢視程式結果。在命令視窗中輸入變數名稱按【enter】,即可得到相應的結果。如。

輸入:a(:,1)

得到:ans =

輸入:a(:,2)

得到:ans =

7樓:楊好巨蟹座

先ind=find(a==3);

然後對ind的每乙個值。

i,j,k] = ind2sub(size(a),7)ind=find(a==3);

for k=1:length(ind)

i(k),j(k),k(k)] = ind2sub(size(a),ind(k))end

8樓:大俠蕭炎

固定另外另個參量,比如刪除a(i,:,j)就可以了。

matlab 三維矩陣如何刪除子塊

9樓:網友

影象一般是8位非負整型的,不是double型的。

matlab三維矩陣怎麼轉為二維矩陣?

10樓:mxx公尺小夕

方法1:

採用reshape處理。

方法2:採用:squeeze 處理。

方法3:在定義的時候,抽取元素形式為a=b(:,i)。

中三維陣列順序是:行、列、頁。二維陣列只有行、列。如果兩隻之間賦值,有乙個維數縮減問題需要注意。

前者可以縮減為二維,而後者不能縮減為二維的主要原因就在於,三維矩陣中,第一維度代表行,第二維度代表列,第三維度代表頁,當第三維度為1時,代表只有1頁,自然縮減為二維。當第一維度為1時,代表只有一行,但是每頁都有。

中三維陣列順序是:行、列、頁。二維陣列只有行、列。如果兩隻之間賦值,有乙個維數縮減問題需要注意。

前者本來也應該算是三維的,可以縮減為二維,而後者不能縮減為二維的主要原因就在於,三維矩陣中,第一維度代表行,第二維度代表列,第三維度代表頁,當第三維度為1時,代表只有1頁,自然縮減為二維。當第一維度為1時,代表只有一行,但是每頁都有。

matlab三維擬合,matlab 三維擬合

x 12.82 22.94 17.47 8.2 8.69 5.93 4.46 y 45.36 15.38 42.9 24.24 19.22 19.07 8.83 z 0.225 0.23 0.155 0.145 0.06 0.045 0 f a,x x 1,a 1 a 2 x 2,a 3 a 4 a...

請教MATLAB繪製三維曲面圖的問題

這個問題已經好幾年了,我也幾年沒在知道答題,看到這個問題又有了答題衝動。這4行 第一行生成了網格資料,賦值給了x y兩個變數。3 125 3表示範圍為 3到3,間隔0.125 第二行用了一個內建快捷函式peaks 這個函式的作用是根據輸入的x y得到z的資料,得到有峰有谷這樣的一個圖形。直接執行pe...

matlab怎麼畫x y z 0 5的三維平面圖,只需要在第一象限的圖

x,y meshgrid 0 0.01 0.5 z 0.5 x y l z 0 x l nan y l nan z l nan mesh x,y,z matlab三維影象,畫出圖形以後,只需要x y那部分的圖形。請問如何更改程式?50 可這樣改 xx 0 0.02 1 x軸取值範圍yy 0 0.02...