如何把matlab中兩個陣列的不同元素挑出來

時間 2021-07-01 01:35:33

1樓:匿名使用者

用find函式。

假設第一個陣列是x,第二個陣列是y。有**如下:

i=find(x~=y);   %該命令返回所有對應x元素不等於y元素的下標。

x(i),y(i)                      %顯示所有不同元素

測試結果:

擴充套件:如果x,y是同型號矩陣也可以。這是候傳回的引數可以是1個(矩陣線性化以後的下標),或者2個(行下標、列下標),或者3個(前3者都有)。

呼叫格式:[i,j,v] = find(x)     i行下標,j列下標,v線性化下標

2樓:來自動物園驕傲的合歡花

ab兩個陣列,可以用for迴圈,將a陣列裡的每一個值find()函式去b陣列裡找,找到了就返回1,沒找到就說明這個數屬於不同元素,就把這個元素儲存下來。

3樓:

%沒有什麼好的函式了,只能老實的寫程式了,我給你寫了一個clear;

clc;

a=[1,5,7,19,35,51,61,73,85,95,111,127,139,141,145];

b=[7,19,51,61,73,85,95,127,139];

la=length(a);

lb=length(b);

n=1;

for i=1:la

isequal=0;

for j=1:lb

if a(i)==b(j)

isequal=1;

break;

endend

if isequal==0

c(n)=a(i);

n=n+1;

endendc

4樓:匿名使用者

使用setdiff函式

例子: >>x=[1:10]; y=[6:8]; c = setdiff(x,y)

輸出結果:

c =1 2 3 4 5 9 10

(@wisdomay正解)

matlab中如何根據某種規則將一個陣列中的元素分配兩個不同的陣列

5樓:匿名使用者

直接用隨機排序

x=randperm(5);

b=a(x([1 2]));

c=a(x([3 4 5]));

6樓:奮鬥

資料是隨機分的嗎?只要滿足2:3的比例就行?

matlab 從陣列中隨機取幾個下標不同的元素

7樓:匿名使用者

原陣列a,假設是一維的。取n個元素。

rand=randperm(length(a));

index=rand(1:n);

index=sort(index);

b=a(index);

b就是你要的。如果不要求下標按順序排列,將第三行(index=sort(index);)去掉。

8樓:天雲一號

在matlab中,可以用rand函式來取隨機值,由於下標為整數,所以用randi函式取正整數隨機值。其具體實現過程為:

% a為陣列

% n為隨機取值的個數

% out為取出的元素陣列

function out = fun(a, n)[row, col] = size(a);

if(n > row*col)

error("n超出陣列元素個數");

return;

endx0 = 1 : row;  % 下標陣列y0 = 1 : col;  % 下標陣列for i = 1 : n

x = randi(row,1);  % 隨機取下標值y = randi(col,1);  % 隨機取下標值% 如果隨機取的下標在下標陣列中,那麼沒重複,將其對應元素取出if(sum(repmat(x,1,row)==x0)>0 || sum(repmat(x,1,row)==x0)>0)

out(i) = a[x, y];

endx0(x) = ; % 刪除剛才取出元素所對應的下標y0(y) = ; % 刪除剛才取出元素所對應的下標end

9樓:稅鶯韻楚好

如果這n個二維陣列維數相等,那就簡單,做一個陣列的陣列alls把這n個資料都做成陣列,當成行放進去,取的時候計算一下行就行了,但是必須sn都是同維數矩陣.s1=

[1,2;3,4];

alls

=[s1];

s2=[5,6;7,8];

alls

=[alls;

s2];s3=

[9,10;11,12];

alls

=[alls;

s3];

取s2,這樣,先根據2計算行下標,

(2-1)*size(s2,1)+1:2*size(s2,1)列全取就是:

alls((2-1)*size(s2,1)+1:2*size(s2,1),

:);**********====

同理,去sn就是

alls((n-1)*size(sn,1)+1:n*size(sn,1),:);

matlab中怎麼求陣列中非零元素的個數

a 1 2 0 0 1 1 1 3 0 b a 0 比較是否為0 b 1 1 0 0 1 1 1 1 0 result sum b 不為0個數求和 result nonzeros x 是求非零元素,提取這些元素,並不適合個數統計 重要功能 matlab matlab 語言的單元測試框架 tradin...

php陣列合並要保持兩個陣列的鍵名都不變

首先你要在肯定 array a和 array b的值count是一致的,否則 array a值的 個數少的話不符合陣列規則 所以保守寫法,迴圈 array a array ab array for i 0 i count array a i print r array ab array ab arr...

matlab編寫程式編寫函式判斷兩個數是否互為質數

是兩個數互相不能整除的意思嗎?matlab裡編寫一個函式 實現判斷一個數是否是質數的功能 function isprime x if x 2 x 3 disp 這個數是質數 elseif x 1 mod x,2 0disp 這個數不是質數 elseif x 3 result 1 for i 3 2 ...