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

2021-05-19 22:47:48 字數 6608 閱讀 1306

1樓:海天盛筵

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

如下參考

: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,:),如下圖所示。

2樓:匿名使用者

以矩陣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, :) 的元素個數相同。

3樓:匿名使用者

a(ii,:) = b

4樓:匿名使用者

舉例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

matlab如何將矩陣中處於某一範圍的值替換為特定值

5樓:有空飄過的

三句就可以了

a(a<=2) = 0;

a(a>2 & a<=4) = 1;

a(a>4) = 2;

6樓:滿意請採納喲

兩種方式

1,不用迴圈

**:a=[-5, -4, -3, -2; -1, 0, 1, 2; 3, 4, 5, 6];

%a<=-2 ---->0; -21; a>3------->2.

sizea = size(a);

a1 = zeros(sizea);

a2 = a1;

a3 = a1;

a1(a <= -2) = 0;

a2(a > -2 & a <= 3) = 1;

a3(a > 3) = 2;

b = a1 + a2 + a3

2,用迴圈

**:a=[-5 -4 -3 -2;-1 0 1 2;3 4 5 6]

for ii=1:3

for jj=1:4

if a(ii,jj)<=-2

a(ii,jj)=0;

elseif a(ii,jj)>-2&&a(ii,jj)<=3a(ii,jj)=1;

elseif a(ii,jj)>3

a(ii,jj)=2;

endend

enda

7樓:匿名使用者

a=[1,2,1,2;1,3,4,5;2,4,3,1];

for i=1:3

for j=1:4

if (a(i,j)<=2)

a(i,j)=0;

endif (a(i,j)>2)&&(a(i,j)<=4)a(i,j)=1;

endif a(i,j)>4

a(i,j)=2;

endend

enda

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

8樓:主減速齒輪

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

a(a==1.5)=1;

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

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

9樓:匿名使用者

方法如下:

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;

10樓: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;

11樓:匿名使用者

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

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

a(i,j)=1;

matlab如何改變矩陣中的變數的值

12樓:匿名使用者

你的想法是可以實現的,但符號變數的替換要用subsclear all;clc;

syms x

b=[1;2;3;x];

b=subs(b,,)

b =12。

13樓:林木木林

你這樣的話應該不行,因為syms已經把x符號化,不可以直接賦值。

要賦值只能在一開始

>> x=4;

>> b=[1;2;3;x]

b =123

4希望我的回答會對你有幫助!

matlab中如何給一個矩陣中的某幾個特定位置賦值

14樓:大野瘦子

用sub2ind

>> a=zeros(5); i = [2;3;4]; j = [1;4;2];

>> a(sub2ind(size(a), i, j))=1

a =0 0 0 0 0

1 0 0 0 0

0 0 0 1 0

0 1 0 0 0

0 0 0 0 0

注意事項

matlab書寫表示式的規則與「手寫算式」差不多相同。

如果一個指令過長可以在結尾加上...(代表此行指 令與下一行連續),例如

?3*...

6ans =

18在matlab中,可通過如下方式給矩陣賦值:

a = zeros(3,4);   % 初始化一個3*4的矩陣

>>a =

0 0 0 0

0 0 0 0

0 0 0 0

a(1,2) = 5;   % 將矩陣a的第1行第2列個元素賦值為5>>a =

0 5 0 0

0 0 0 0

0 0 0 0 a(2) = 6;   % 將矩陣a的第2個元素(按列開始計算)賦值為6

>>a =

0 5 0 0

6 0 0 0

0 0 0 0 a(3,:) = [1 2 3 4];   % 將矩陣a的第3行賦值為[1 2 3 4]

>>a =

0 5 0 0

6 0 0 0

1 2 3 4

15樓:du瓶邪

比如:k1=[1,2;3,4];

k=zeros(4);

把k1的值賦在k的特定位置後,獲得

k=[0,1,0,2;

0,0,0,0;

0,3,0,4;

0,0,0,0;]

k([1 3],[2 4]) = k1

16樓:匿名使用者

mark一下,等答案

17樓:

直接賦值不行嗎?

a(2,1)=1;a(3,4)=1;a(4,2)=1;

18樓:匿名使用者

a(size(a,1)*(j-1)+i)=1

19樓:匿名使用者

為什麼不能用for。。。。。

鑽在這種無關痛癢的小技巧上有什麼意思啊。。。。

matlab中如何給已有矩陣插入一行或一列值

20樓:手機使用者

舉例來說吧假

來如你已有自矩陣a如下:a=[2 3 5;3 4 1;0 9 7]這是一個3*3矩陣,那麼當你想插入一行r=[1 2 3]時,那麼可

以這樣做:a=[a;r]這樣a就變成了4*3的矩陣a如下:a=[2 3 5;3 4 1;0 9 7;1 2 3]

假如你已有矩陣a為:a=[2 3 5;3 4 1;0 9 7;1 2 3]那麼當你想插入一列

c=[1;2;3;4]時,你可以這樣做:a=[a c]那麼這是a就變成了

21樓:匿名使用者

比如現bai在有個矩陣:dua=n*m (n行m列),有個新行向量:a=1*m(zhi1行m列),你想在daoa矩陣的第專k行和第k+1(其中k行插入這個新的行屬向量。

你可以這麼做:a = [a(1:k,:); a ;a(k+1:n,:)];

舉例:a = rand(10,5); %10行5列k = 7; %希望在第7行和第8行之間插入

a = [1,2,3,4,5]; %希望插入的行向量a = [a(1:k,:); a; a(k+1:10,:)];

matlab中怎麼把矩陣某幾行提取出來的

22樓:匿名使用者

使用a(m,n)可以提取bai

矩陣a中符合dum,n要求的部分zhi

最簡單是m,n都是標量,就是dao一個數例如

a(1,1) a(2,3)分別專返回a矩陣1行1列的單元 和 2行3列的單元

m,n還可以是向量,例如

a([1 2 3 4],[2 3]) 返回 1 2 3 4行 2 3 列的資料

這裡還有通配的技巧,例如

a(1,:)就是返回a矩陣第一行的所有資料等效於a(1,1:end)或a(1,1:size(a,2))

m,n向量還可以是不連續的,不是單調的,或者有重複的,例如

a(1:2:end,:) a(2:2:end,:)分別提取矩陣a的奇數行和偶數行資料重新組成矩陣

a(end:-1:1,:) a(:,end:-1:1)分別返回a矩陣行屬倒序和列倒序的矩陣

總之matlab通過的下標提取矩陣部分是很靈活的

假設你要提取矩陣a第n列的資料,使用a(:,n)就可以了

如果是要提取第n列前10個資料使用a(1:10,n)就可以了

23樓:匿名使用者

矩陣是a,取3、 5、 7行的話: a1=a([3,5,7],:);

matlab中,一個行向量怎麼賦值給矩陣的一行啊!

24樓:蝦彈文化

1、可以通過zeros函式進行賦值,輸入a=zeros(2,3),生成了一個全0矩陣,如下圖所示:

2、可以直接使用a(1,3)=5方式進行矩陣賦值,a矩陣第1行第3列賦值成5了,如下圖所示:

3、使用 a(3)=8方式進行賦值,矩陣第3個元素賦值為8,從列開始往下數,如下圖所示:

4、使用a(1,:)=[1 1 1]方式對矩陣一行進行賦值,如下圖所示:

25樓:匿名使用者

例如:a=[1 2 3];

b=zeros(3,3);

則:b(1,:)=a;

這就,b的第一行就變成1 2 3了。

26樓:楊好巨蟹座

有個變維函式,reshape函式。

另外記住矩陣元素的排列是從上到下,從左倒右的,按照這個規則以及變維函式可以實現想要的功能:

>> a=1:6

a =1 2 3 4 5 6>> b=reshape(a,3,2)'

b =1 2 3 4 5 6

中突然有一行文字間距特別大怎麼改都不行

一般這個問題都是因為下一行的開頭有一個比較長的單詞或空格等英文符號或者字元中間有不間斷空格,造成這個長單詞或空格或有不間斷空格連線的內容成為一個整體,放在上一行又放不下,於是就整體移動到下一行的開頭去了,而上一行中的內容就比較少,這是如果設定了兩端對齊或者分散對齊的話,就會將剩餘的不足一個行的字元平...

有一行字間距特別大怎麼改都不行,word 文件有一行字間距特別大怎麼改都不行

一般這個問題都是因為下一行的開頭有一個比較長的單詞或空格等英文符號或者字元中間有不間斷空格,造成這個長單詞或空格或有不間斷空格連線的內容成為一個整體,放在上一行又放不下,於是就整體移動到下一行的開頭去了,而上一行中的內容就比較少,這是如果設定了兩端對齊或者分散對齊的話,就會將剩餘的不足一個行的字元平...

矩陣和行列式的某一行或某一列互換會改變符號嗎

行列式某一行與某一列一般是不可互換的,因為可能會導致不相等 行列式行或列互換變符號?交換矩陣的兩行 列 是屬於矩陣的初等變換,是不用變符號的。而交換行列式的兩行 列 行列式是要變號的。行列式a中某行 或列 用同一數k乘,其結果等於ka。行列式a等於其轉置行列式at at的第i行為a的第i列 若n階行...