matlab如何把兩個矩陣中相同值的元素設為

時間 2022-07-31 12:55:02

1樓:匿名使用者

有沒有現成的函式不知道,但是實現起來應該不難。我採用跟c類似的方法經過兩次迴圈實現的。**如下:

[ra,ca] = size(a);

[rb,cb] = size(b);

for i = 1:ra*ca

for j = 1:rb*cb

if a(i) == b(j)

a(i) = 0;

endend

enda,b可以為任意形式的矩陣。

2樓:

這樣也可以,依次找到與b每個數相等的a數列編號,再賦值為零。

index=;

for i = 1:length(b)

index = [index; find(a==b(i))];

enda(index)=0;

3樓:信科濱

%向量化的方式(**是不是很犀利)

for i=1:length(b(:)) %感謝某兄弟的提示,不是length(b)

a(a==b(i))=0;end

4樓:立志要當工程師

用迴圈來實現吧,假設a矩陣共有m個元素,b矩陣共有n個元素for i=1:m

for j=1:n

if a(i)==b(j)

a(i)=0

endend

end就行了。

5樓:昱婷漫步

可以這樣寫:

a=[ 1 2 3;4 1 2]

b=[2,3 4]'

for i=1:length(b)

a(find(a==b(i)))=0;

enda

--------------執行結果:

a =1 2 3

4 1 2

b =234

a =1 0 0

0 1 0

在matlab中的兩個矩陣中,怎麼當一個矩陣的資料出現0時,另一個矩陣相同位置的資料也要為0

6樓:萬同堂

你好,執行下面的一句話就可以了哦!!

b(find(a==0)) =0;

求助matlab如何找出兩個矩陣中相同的元素

7樓:上海皮皮龜

設a,b為行列數分別相等的兩個矩陣。

c=(a==b)

%c為0,1矩陣,等於1的元素位置即a,b相同元素的位置,(0對應不等)

matlab如何使矩陣中大於某值的元素置零

8樓:匿名使用者

1、思路:

使用布林陣列引用矩陣中所有大於某值的元素,然後將其賦值為0。

2、**:

a(a>10) = 0;  % 將矩陣a中大於10的元素設定為0。

3、示例:

9樓:子衿悠你心

舉個例子,如複果需要將a矩陣中大制於a的元素置零,那麼在matlab中可以這麼輸入:

方法一:a(find(a>a))=0;

方法二:a(a>a)=0;

通過這個**即可實現目標。

例項:將3*3的隨機矩陣a中大於0.5的數置零。

10樓:匿名使用者

比如把一個n階矩陣k中的所有小於255的數置零.而大於255的數置512?

11樓:匿名使用者

比如要將矩陣a元素大於7的置為0,則可以這樣:

b=find(a>7);%找出大於7的位置

a(b)=0; %將大於7的位置置為0

12樓:匿名使用者

比如矩陣為a,使用a(a>=512)=0

matlab 怎麼把一個矩陣中所有等於5的數,替換成0,有沒有相應的函式

13樓:仙人掌的憂傷

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

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

matlab的基本資料單位是矩陣,它的指令表示式與數學、工程中常用的形式十分相似,故用matlab來解算問題要比用c,fortran等語言完成相同的事情簡捷得多,並且matlab也吸收了像maple等軟體的優點,使matlab成為一個強大的數學軟體。

14樓:匿名使用者

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

a(a==1)=0;

這個語句的意思就是把a中等於1的元素全部變為0!

祝你學習愉快!

15樓:匿名使用者

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

a(i,j)=0;

matlab中怎麼保留一個複數矩陣的一部分,而讓其他部分元素變為0 20

16樓:匿名使用者

總體思路:根據要保留元素的條件使用find()命令或者使用for迴圈對每個元素進行檢測,不滿足條件的元素賦值為0

參考**

clcclear all

close all

%-- 使用find()語句 --%

x = [1+2i 2+3i 3+4i];

ix = find(x~=(2+3i)); % 只保留2+3i,其他元素變成0

x(ix) = 0;

disp('x=');

disp(x);

%--------------------%

%-- 使用for迴圈語句 --%

x1 = [1+2i -2+3i 3+4i -8-5i];

for i=1:length(x1) % 假設只保留元素實部大於零的

if( real(x1(i))<0 )

x1(i) = 0;

endend

disp('x1=');

disp(x1);

%--------------------%

輸出效果

x=0.0000 + 0.0000i 2.0000 + 3.0000i 0.0000 + 0.0000i

x1=1.0000 + 2.0000i 0.0000 + 0.0000i 3.0000 + 4.0000i 0.0000 + 0.0000i

17樓:疾風動竹

a([1:84,116:251],:)=0;

即可非用迴圈的話

for i=[1:84,116:251]

for j=1:251

a(i,j)=0;

endend

如何實現matlab 將一個矩陣中前幾列置為0

18樓:匿名使用者

a(:,1:3) = 0  % 表示將二維矩陣a的錢三列設定為0舉例如下:

>> a = magic(5)

a =17    24     1     8    1523     5     7    14    164     6    13    20    2210    12    19    21     311    18    25     2     9>> a(:,1:3) = 0

a =0     0     0     8    150     0     0    14    160     0     0    20    220     0     0    21     30     0     0     2     9

在matlab中,怎麼利用兩個矩陣對應元素相等去解某個矩陣中所含的未知數?(不是吧元素分開寫方程)

19樓:楓葉嘉年華

未知數要定義成symbol變數,然後solve(a-b==0),就可以解出未知數,但是此時是字串,vpa定義精度,double成數值,具體就是:

syms x y%x,y是矩陣a,b中的未知數a=;%a,b是多少,這個你知道

b=;x=solve(a-b==0,x);

x=vpa(x,3)%保留3位數字,此時x是字元x=double(x)%轉換為浮點數

matlab如何把矩陣中不同的元素組成新陣列

b為資料來源矩陣,假設為一維 a ka 1 for kb 1 length b if kb滿足某條件或者b kb 元素滿足某條件 a ka b kb ka ka 1 endend 以上 中b也可以為2維的,完全一樣的 但結果a是一維的,刷選出來的有if條件決定 上述 效率可能不佳 人或b如果不是幾個...

在matlab中,如何在已知矩陣中取隨機兩個數並交換??微急,求大神拯救

思路就比較簡單 隨機產生兩個數,取值範圍為 1,矩陣的列數 m,n隨機產生兩個數,取值範圍為 1,矩陣的行數 q,p剩下的就是利用下標交換咯。t x m,q x n,p x m,q x m,q t完成 酷呆愛死呆 a rand 3,3 a 0.7784 0.7750 0.14820.3654 0.5...

1編寫M函式,用於計算兩個矩陣的積(兩個矩陣作為輸入

function c ji a,b m n size a m n size b if n m error 前者列數與後者行數不同,無法相乘!else for p 1 m for q 1 n for t 1 n d p,q,t a p,t b t,q endc p,q sum d p,q,endend...