フィルターのクリア

How do I compare two large matrices?

3 ビュー (過去 30 日間)
Premal
Premal 2014 年 9 月 13 日
回答済み: Roger Stafford 2014 年 9 月 13 日
Hi I'm new to matlab and was wondering how to compare two matrices
Basically I have one matrix that is 950x49 and one that is 950x1 I want to compare the two matrices to bring back the 10 closest values of each column of x that is compared with y, into a new matric 'new'. If anyone could please help, it would greatly be appreciated!
  2 件のコメント
José-Luis
José-Luis 2014 年 9 月 13 日
Should the values be in the same line?
Premal
Premal 2014 年 9 月 13 日
nope they just have to be the 10 closest values in each column!

サインインしてコメントする。

採用された回答

Rick Rosson
Rick Rosson 2014 年 9 月 13 日
編集済み: Rick Rosson 2014 年 9 月 13 日
N = size(x,2);
u = ones(1,N);
d = abs(x - y*u);
v = sort(d);
z = v(1:10,:);
  1 件のコメント
Premal
Premal 2014 年 9 月 13 日
thank you so much!!! Is there anyway to get the value of x that was closest into z rather than the difference?

サインインしてコメントする。

その他の回答 (1 件)

Roger Stafford
Roger Stafford 2014 年 9 月 13 日
Just modify Rick's code a bit:
m = 10;
[~,p] = sort(abs(bsxfun(@minus,x,y)),2);
new = zeros(size(x,1),m);
for i = 1:N
new(i,:) = x(i,p(i,1:m));
end

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by