1樓:
假設舉證為a
[m,n]=size(a);
for i=1:n
if i~=1
a(:,i)=0;
endend
這個是將矩陣a第一列儲存他原來的值 其他全設為零哈
2樓:匿名使用者
a=rand(5)
a(2:5,:)=0
a =0.1544 0.3508 0.5975 0.3596 0.1249
0.3813 0.6855 0.3353 0.5583 0.0244
0.1611 0.2941 0.2992 0.7425 0.2902
0.7581 0.5306 0.4526 0.4243 0.3175
0.8711 0.8324 0.4226 0.4294 0.6537
a =0.1544 0.3508 0.5975 0.3596 0.1249
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
這就是最簡單的例子了
3樓:冰不可語夏蟲
j=zeros(m,n);
j1=[89 00 9 88 ]' %你的第一列資料
j=[ j1,j]
如何實現matlab 將一個矩陣中前幾列置為0
4樓:
a(:,1:3) = 0;
前3列置0
5樓:___小末
矩陣名字為a
a(:,1:j) = 0;
這樣就能把前j列置為零
6樓:shine戚七七
1、思路:
使用布林陣列引用矩陣中所有大於某值的元素,然後將其賦值為0。
2、**:
a(a>10) = 0; % 將矩陣a中大於10的元素設定為0。
3、示例:
7樓:匿名使用者
size (a)=[m,n]
第一列設為0
a(:,1)=0;
matlab中,對於矩陣,如何去掉所有全為0的列 形成新的矩陣
8樓:匿名使用者
matlab提供了很好的整合模組,上面的方法太麻煩!那是c語言的思想。
最最簡單和便捷的方法:
設矩陣a
a(:,find(sum(abs(a),1)==0))=;
搞定! 哈哈。。。windenchanter童鞋提出的很好,小bug人人都有,改之。
不過windenchanter童鞋不用那麼急功近利,誰的答案好就是好,和先來後到沒啥關係。話說可以用最簡單的方法解決,就別整看似高深的標準偏差std,用abs完全可以,不行咱還有logical。。。很多很多簡單實用的東西。
博士嘛,要學會把複雜的東西簡單化。
9樓:匿名使用者
另一種思路:
a = [0 1 4 0 5; 0 2 5 0 8; 0 7 6 0 1];
n = size(a);
i = 1;
while (i < n(2)) % n(2)是矩陣a的列數tmp = a(:, i);
if tmp == zeros(size(tmp))a(:, i) = ; % 刪除全部為0的一列n = size(a); % 更新n(2)else
i = i + 1; % 下一列
endend
不知這樣是否更易理解。
如何實現matlab將一個矩陣中前幾列置為0
10樓:匿名使用者
使用如下**
a(:,1:3) = 0;
前3列置0
這樣就可以了
matlab 如何去掉矩陣中的全0行
11樓:小小小小顰
具體操作步驟如下:
1、首先,來了解下以下兩個函式,可以使用這兩個函式來進行刪除所有零行或全部列的操作。如下圖所示,然後進入下一步。
2、其次,建立一個a = [1,2,4; 0,0,0; 1,3,5; [0,0,0]矩陣,可以看到此矩陣中有兩行是全0行,如下圖所示,然後進入下一步。
3、接著,鍵入all(a == 0,2),這將返回一個列向量,並且可以檢測所有零行的位置,因為使用了a = 0,所以返回的是0表示非零元素,返回1表示所有零行,如下圖所示,然後進入下一步。
5、最後,按enter確認,可以看到矩陣的兩行全0行就被刪除了,如下圖所示。這樣,問題就解決了。
12樓:小執著
1、第一步刪除全零行之前,首先要了解一下all函式和any函式的用法,可以通過這兩個函式來刪除全零行或者列,介紹如下圖所示:
2、第二步在matlab命令列視窗中新建一個a=[1,2,4;0,0,0;1,3,5;0,0,0]矩陣,可以看到這個矩陣中有兩行為全零行,下面來刪除這兩行,如下圖所示:
3、第三步刪除全零行,主要通過all(a==0, 2),這返回的是一個列向量,可以檢測到全零行的位置,因為使用了a=0,返回的為0代表是非零元素,返回的為1代表是全零行,如下圖所示:
4、第四步使用a(all(a==0,2),:)=**來刪除全零行,如下圖所示:
5、第五步按回車鍵之後,可以看到已經刪除了a矩陣的2行全零行,如下圖所示:
6、第六步需要注意的是,如果直接使用a(all(a,2),:)=來刪除,刪除的是非零行,留下的是全零行,如下圖所示:
13樓:匿名使用者
a=[1 2 3;0 0 0;2 1 6];
a(all(a==0,2),:)=
____________________
如果是3維矩陣那就必須是某個面(整個2維矩陣)全部都是0,如果單一行是0,這個面的其他元素不為0,怎麼能去掉呢,因為一刪就是刪一個面啊。
14樓:
樓上的辦法適用於去掉指定的某一行(列),當矩陣較大,不能一一列舉全零行(列)時用這個辦法比較簡單
a=[1 2 3;0 0 0;2 1 6];
a(find(sum(abs(a),1)==0),:)=;
如果要除去全零列就用下面這個
a(:,find(sum(abs(a),1)==0))=;
15樓:清風or朗月
輸入a(2,:)=
就可以了,直接去掉
去掉的也可以不是全0行,只要是你指定的,你都可以通過此方法去掉特定的行!
matlab中想將某個矩陣中,全部為零的一行刪除,怎麼程式設計
16樓:匿名使用者
clcclear
a=rand(100,100);
a(15,:)=zeros(1,100);
a(20,:)=zeros(1,100);
a1=sum(abs(a'));
index=find(a1==0);
a(index,:)=;
其實非常簡單,設a是這個矩陣,用sum求每一行的絕對值的和,如果為零說明這行全為零,找到那些行,從矩陣中去除即可
**中隨機生成了100*100的矩陣,其中15和20行設為全零,執行後可得到去除全零行的結果~
matlab中如何把一個矩陣中非零元素都變為1?
17樓:賣車大王張總
在matlab中,空矩陣、bai零矩陣和全du一矩陣是比較zhi特殊的矩陣,它們在結構形式和dao矩陣元素專的組織上有著獨特屬的規律性。matlab中如何把一個矩陣中非零元素都變為1的方法是:
1、利用ones(m,n)生成一個m行n列的全一矩陣。如圖:
2、利用ones(n)生成一個n階的全一方陣。如圖:
3、>> a = [-1 0 2;-3 -4 0;9 -78 1]a =-1 0 2
-3 -4 0
9 -78 1
>> a(a~=0) = 1
a =1 0 1
1 1 0
1 1 1
18樓:匿名使用者
>> a = [-1 0 2;-3 -4 0;9 -78 1]a =-1 0 2
-3 -4 0
9 -78 1
>> a(a~=0) = 1
a =1 0 1
1 1 0
1 1 1
matlab 如何用max函式計算矩陣中某一行的最大值
命令 max z1 1,其中抄z1 1,中1表示 第1行,冒襲號 表示第1行所有元素bai。max求一個陣列的最du大元素函式。zhi用法c max a 返回一個陣列各不 dao同維中的最大元素。如果a是一個向量,max a 返回a中的最大元素。如果a是一個矩陣,max a 將a的每一列作為一個向量...
矩陣是如何階梯化成矩陣的,第一個矩陣是如何階梯化成第二個矩陣的
首先要了解矩陣 的簡化階梯形,專業的定義你可以翻書,線性代數或者矩陣論回,通常我們理答解的就是要滿足這麼兩個條件就可以了 每個非零行 就是一行不全為零 的第一個數字是1 每個 打頭1 就是上個條件中的1 所在列其它數字為0 舉例 1 0 0 3 5 0 1 0 4 2 0 0 1 0 1 0 0 0...
如何用matlab中subplot的使用
subplot就是將figure中的影象劃分為幾塊,每塊當中顯示各自的影象,有利於進行比較。比如example裡面有這樣的例子 in e 3.2 4.1 5.0 5.6 outgo 2.5 4.0 3.35 4.9 subplot 2,1,1 plot in e subplot 2,1,2 plot...