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