I have values as
data2 =
[20x480 double] [20x480 double] [20x480 double] [20x480 double]
{ 1x8 cell } { 1x8 cell } { 1x8 cell } { 1x8 cell }data1 =
[20x480 double]
{ 1x8 cell } i want to match data2 and data1 by euclidean distance and if same values are present i want to display it,plz help
No products are associated with this question.
find(arrayfun(@(i) isequal(data2(:,i),data1), 1:size(data2,2) )),
@Pat,
data1=data2 is not a valid example of your original problem description. In your problem as you originally posted it, data1 had only one column. When I modify your example as follows, I get the expected result
data2={rand(20,480),rand(20,480);
num2cell(ones(1,8)), num2cell(ones(1,8))};data1=data2(:,2);
find(arrayfun(@(i) isequal(data2(:,i),data1), 1:size(data2,2) ))
ans =
2
If this is not what you want, edit your question clarifying the form of the data and also, include a numerical example of desired input and output.
if data1 has different values i get empty matrix
i want to display data is present ,how can i check the answer if it is empty matrix or not and display it
so how i can display it as "data is present".
1 Comment
Direct link to this comment:
http://mathworks.com/matlabcentral/answers/57605#comment_119658
What's in the 1x8 cells?
What do you want displayed? The data? The column numbers of data2 which agree with data1?
When are the values considered "the same"? When the Euclidean distance = 0 precisely or is there some tolerance>0? If the tolerance=0, why care about the Euclidean distance at all? Why not just use ISEQUAL, as in my Answer below?