如何把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),:);

php如何刪除兩個陣列中相同的元素

a 1,2,3 b 2,3,4 c array diff a,b 1 d array merge array diff a,b array diff b,a 1,4 var dump c,d 一騎當後 如何去除陣列中相同的元素?在php手冊中有這樣寫 array unique php 4 4.0.1...

怎麼把結構一樣的兩個陣列合併成乙個陣列

vbs的陣列操作比較麻煩。比個方法你吧。dim arr1 1,2,3 dim arr2 4,5,6 dim arr length arr1 length arr2 1 新陣列的長度為兩個陣列長度的和。dim i 0 for i,iend for dim j length arr1 1 dim k 0...

c語言,兩個將兩個陣列中的相同元素全部刪去,輸出刪去後的兩個陣列。如1,1,1,2,2,2,0,2,1,

不懂多來問問 include using namespace std 去掉陣列中為a的資料 int main int a2 10 int j 0,i while j l1 else cout l1 去掉陣列中為a的資料 寫好了 include int main printf 請輸入第二個陣列的元素個...