Matlab怎樣按索引給矩陣某些位置賦不同的相應值,不用for迴圈

2021-04-19 06:38:16 字數 2494 閱讀 2397

1樓:愛笑的柯南推理

兩種方bai法:

1,將所有要刪du除的行標順序zhi排列成向量v,然後dao用命令"矩陣版變數名"(v,:)=;%可刪除與權"矩陣變數名"對應的矩陣中的指定行(通過v指定),並改變原矩陣維數

2,將所有要保留的行標順序排列成向量v,然後用命令"矩陣變數名"="矩陣變數名"(v,:);%即將與"矩陣變數名"對應的矩陣中的指定行(通過v指定)重新賦給該變數

刪除列類似.

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

2樓:大野瘦子

用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

3樓: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

4樓:匿名使用者

mark一下,等答案

5樓:

直接賦值不行嗎?

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

6樓:匿名使用者

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

7樓:匿名使用者

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

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

利用matlab對矩陣的特定位置賦值? 5

8樓:匿名使用者

>> a =修復(10 *蘭特(1,10)+5);%隨機生成一個1x10向量

>> a(1:2:10)= 0;%令奇位是0

>> a(查詢(a == 0))= ;%找到一個位置0,並使其空,即刪除

9樓:

將某bai

些元素從矩陣中du

刪除,採用將其置為空矩陣zhi即可。如a=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 1617 18];a=(:,[2 4])=第二條

dao命令將刪除a的第回2列和第4列元素。答

matlab 怎麼能把矩陣裡不等於某個特定值的index找出來?

10樓:電燈劍客

矩陣本身也可以看bai成一維向量(因為

du實際存zhi貯的時候不論多少維的稠dao密張量都是專按一維來存的屬), 所以可以直接用諸如

a(index)=0

b(index)=1

b(a~=1)=2

這樣的操作

如果你一定想把index搞成矩陣的形式, 那麼把find去掉, 直接用index=(a~=1)

11樓:匿名使用者

a=[2, 2, 2, 1, 1 ; 2, 2, 1, 1, 1 ; 2, 1, 1, 1, 1] ;

b=[1, 2, 3, 4, 5 ; 2, 3, 4, 5, 6 ; 3, 4, 5, 6, 7] ;

index=find(a~=1);

len=length(index);

z=zeros(1,len);

for i=1:len

z(i)=b(index(i));

end得到bai的z裡面儲存的就是dua作為索zhi引的b裡面的數,不dao知道是專不是你說的意思屬

matlab中如何利用向量作為矩陣索引訪問相應元素

n維矩陣有兩個下標,n維向量只能提供一個下標。當然你可以採用單下標訪問方式。比如a a 顯示的結果是a矩陣的第1,3,4 個元素 而a 1,a 顯示的是a 1,1 a 1,3 a 1,4 的結果。matlab中陣列元素引用有三種方法 1.下標法 subscripts 2.索引法 index 3.布林...

如何修改matlab中索引超過矩陣的維數

用size函式可以求矩陣 維數,用reshape可以改變資料維數。如 a 1 2 3 4 5 6 7 8 9 size a ans 3 3 說明矩陣a是3行專3列的。reshape a,1,9 ans 1 4 7 2 5 8 3 6 9 可以屬講陣列a變成1行9列的。下標超過維數當然不合法了 mat...

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的每一列作為一個向量...