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...