Comparing Two Data to find best match

8 次查看(过去 30 天)
Hello,
I have 2 sets of data, Y and X. Y data is a single column and X contains multiple columns. X & Y have different lengths. Each row in X (columns C-L) is a sample on its on. In other words, all the variables in each row of X (columns C-L) belongs to one sample. As you can see in the attached file, there are 12 Y data and hence I want to extract the corresponding X data (12 of them) that will match well with Y. So I want to take the first value in Y, perform some sort of matching analysis all rows of X to see which one give the least error of matching or some sort of distance. After A value in X has been found that matches well with the first value in Y, either by distance or by some other methods, I want that X row to be replaced with NaN so that it wont be selected again. The procedure will be repeated on all the remaining Y values. I also want the indices or row number of the each of the selected X data to that of the Y so that I can extract them latter. Any suggestions?
Thank you!

回答(1 个)

Aghamarsh Varanasi
Aghamarsh Varanasi 2020-3-20
Hi,
I understand that you are trying to process the data x and y. Let us consider the data is stored in list y and matrix x. And we also have a function that does the matching analysis and returns the best possible row in x, that matches the value in y.
The following algorithm may help you
% Data is extracted into lists x and y
selectedRows = zeros(length(y));
for ii = 1:length(y)
yElement = y(ii);
% Function that returns the selected row in data x
% by performing matching analysis
xRow = getBestMachingRow(yElement,x);
% replace xRow with nan
x(xRow,:) = nan;
% store the row
selectedRows(ii) = xRow;
end
  2 个评论
Curious Mind
Curious Mind 2020-3-25
Hi sorry for the late reply and thank you for your help. I do have a question though: I am getting an error “unrecognized function or variable’getBestMachingRow’.
Any thoughts?
Thank you.
Aghamarsh Varanasi
Aghamarsh Varanasi 2020-3-26
编辑:Aghamarsh Varanasi 2020-3-26
getBestMachingRow() is the function that will do the computation to get the best row for a value in y. This function is to be defined according to the requirement. As you where not certain about the matching analysis, I left it as an empty function.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by