Matlab中,我只想改變矩陣中對角線元素的值,為啥出來就全改了

2022-04-04 05:49:27 字數 4412 閱讀 8011

1樓:南瓜豬的的的

額 你不瞭解matlab matlab的操作物件不是一個數 而是一個虛數矩陣

比如將一個方陣的對角線元素改為100可以如此設計function b=sy(a)

l=size(a);

if l(1,1)~=l(1,2)

error('stop')

endb=ones(l)-eye(l);

a=a.*b;

b=100*eye(l);

b=b+a;end

2樓:曹玲玲

為什麼這麼複雜呢

for i=1:100

dg111(i,i)=100;%g111(i,i);

dg112(i,i)=100;%g112(i,i);

dg121(i,i)=100;%g121(i,i);

dg122(i,i)=100;%g122(i,i);

dg221(i,ij)=100;%g221(i,i);

dg222(i,i)=100;%g222(i,i);

dg211(i,i)=100;%g211(i,i);

dg212(i,j)=100;%g212(i,i);

end就可以啦

不過我真的沒讀懂這是100;%g211(i,i);什麼操作,怎麼會有;%這個操作

在matlab裡怎麼能讓一個矩陣的對角元素全變為零?

3樓:曠皖君

a=b-diag(diag(b))

4樓:白衣太史

設矩陣為a

a-diag(diag(a))即可

a =0.9501 0.7621 0.6154 0.4057 0.0579

0.2311 0.4565 0.7919 0.9355 0.3529

0.6068 0.0185 0.9218 0.9169 0.8132

0.4860 0.8214 0.7382 0.4103 0.0099

0.8913 0.4447 0.1763 0.8936 0.1389

a-diag(diag(a))

ans =

0 0.7621 0.6154 0.4057 0.0579

0.2311 0 0.7919 0.9355 0.3529

0.6068 0.0185 0 0.9169 0.8132

0.4860 0.8214 0.7382 0 0.0099

0.8913 0.4447 0.1763 0.8936 0

matlab中把矩陣提取對角線元素

5樓:

>> a = reshape( 1 : 9, 3, 3 )a =1 4 7

2 5 8

3 6 9

>> d = diag( a )

d =159

matlab中修改矩陣元素數值的問題。

6樓:匿名使用者

a=1:6;

k=randperm(length(a));

b=a(k(1:3));

c=magic(6);

for i=1:3

c(:,b(i))=0;

end這樣可否

matlab程式設計,如何將一矩陣中等於某個值的元素全部替換成另一個值?

7樓:主減速齒輪

假如要把矩陣a裡的1.5全部換成1,可以用下面命令:

a(a==1.5)=1;

假如要把矩陣a裡的nan全部換成1,可以用下面命令:

a(isnan(a==nan))=1;

8樓:匿名使用者

方法如下:

1、比如說是抄2階方陣,現在對其中的元素進行一些運算並把結果重新賦值到另一個矩陣中,

proc iml;

beta=;

q12=beta[1,1]/2;

q22=beta[2,2]**2/3;

q=;print beta q12 q22 q;

2、方法:

proc iml;

beta=;

q=j(2,2,.);

q[1,2]=beta[1,1]/2;

q[2,2]=beta[2,2]**2/3;

q[1,1]=1;

q[2,1]=beta[1,1]/2;

print beta q;

9樓:du瓶邪

比如說是2階方陣,現在對其中的元素進行一些運算並把結果重新賦值到另一個專矩陣中屬,

proc iml;

beta=;

q12=beta[1,1]/2;

q22=beta[2,2]**2/3;

q=;print beta q12 q22 q;

方法:proc iml;

beta=;

q=j(2,2,.);

q[1,2]=beta[1,1]/2;

q[2,2]=beta[2,2]**2/3;

q[1,1]=1;

q[2,1]=beta[1,1]/2;

print beta q;

10樓:匿名使用者

例如你說的是a,下面就可以,很簡單。nan也可以的。

[i,j]=find(a=1.5);

a(i,j)=1;

怎麼改變矩陣中某一行的值 matlab

11樓:海天盛筵

直接提取來在輸入就可以了。自

如下參考

:bai

1.開啟matlab,在命令列窗du口輸入a=[1,2,3;4,5,6],按回車鍵,建立zhi一個2行3列的矩陣,如下dao圖。

2.如果我們想要得到跟蹤矩陣的第2行和第1列的值,輸入a(2,1),如下圖。

3.如果你想要得到矩陣的第二行和第三列的值,輸入a(2,3),如下圖。

4.如果想要得到矩陣的多個值,可以使用a(2,[1,3])的方法,即得到矩陣第二行的第一列和第一列的值,如下圖所示。

5.如果我們想要獲得第二行的答案資料,我們可以使用a(2,:),如下圖所示。

12樓:匿名使用者

以矩陣a為例。

在matlab中,抄a(i, j)表示的是矩陣baia中第i行第j列的du

元素zhi;

a(:, j) 表示dao矩陣a中第j列的所有元素;

a(i, :) 表示矩陣a中第i行的所有元素。

單單取出某一行,比如a(i, :) ,就是一個行向量,要改變該行向量的元素,即用另一個行向量b來替換將該行向量a(i, :),則可以寫成:

a(i, :) = b;

注意:b必須是一個行向量,其中元素個數與a(i, :) 的元素個數相同。

13樓:匿名使用者

a(ii,:) = b

14樓:匿名使用者

舉例bai

如下:du

將a得第

zhi三dao

行用專b代替;

屬a=[1 2 3 4;5 6 7 8;9 10 11 12];

>> b=[1 2 3 1];

>> a(3,:)=b;

>> a

a =1 2 3 45 6 7 8

1 2 3 1

將矩陣進行變化,對角線下方元素化為0 matlab 作答 謝謝大家

15樓:匿名使用者

a = magic(4)

b = triu(a,0)

a =16     2     3    135    11    10     8

9     7     6    12

4    14    15     1

b =16     2     3    130    11    10     8

0     0     6    12

0     0     0     1

matlab程式設計中用什麼方法可以改變矩陣裡任意元素的正負值

16樓:匿名使用者

把那個元素取出來*-1比如a(i,j)*(-1)

改第i行就是a(i,:)*(-1) i列就是a(:,i)*(-1)等等

matlab中怎樣計算矩陣中每個數的平方

使用點運算。如果原矩陣式a,可以使用a.a或者a.2matlab中點運算是對相同維數的矩陣的對應元素進行相應的運算。點乘,相同維數的矩陣的對應元素相乘。點乘冪,a.b相同維數的矩陣a元素的b對應元素次冪。a.n矩陣a中所有元素取n次冪。點左除,相同維數的矩陣的對應元素進行 運算。點右除,相同維數的矩...

matlab中,我用eig c 求出了矩陣的最大特徵值和對應的特徵向量,如何將進行歸一化呢

c 1 5 0.5 0.2 1 1 7 2 7 1 x,lumda eig c r abs sum lumda n find r max r max lumda c lumda n,n 最大特徵根max x c x n 最大特徵根的對應的特徵向量max x c 1 max x c norm max ...

matlab中如何將多個矩陣儲存到同矩陣中

將a,b,c合併成d,然後再一次性儲存為txt.d a b c 讀入到txt建議用dlmwrite函式 例如 有100個同維數的矩陣,使其從左到右的順序儲存到同一個txt檔案中。example a,b,c,d是25 3的矩陣 儲存在txt檔案中後的形式是 a b c d 程式設計了25 12的矩陣。...