如何用matlab使矩陣的第一列全不為零,後面的全為零

2022-02-26 04:37:13 字數 4539 閱讀 6331

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