Pairs of elements that meet a condition?
2 views (last 30 days)
Show older comments
Suppose all_val is an nx2 matrix of real numbers.
How to get a matrix cond_val with only the rows of all_val for which
fun(j1)*fun(j2) < 0 % for some scalar-input function fun.m
Where j1 is the element from column 1 and j2 is the corrosponding element from column 2 of the rows of all_val.
0 Comments
Accepted Answer
More Answers (2)
Massimo Zanetti
on 9 Oct 2016
Edited: Massimo Zanetti
on 9 Oct 2016
A=rand(15,2);
f=@(x) x.^2; %or another function you define
C=cell2mat( arrayfun( @(k) f(A(k,1))*f(A(k,2))<0 , (1:15)' ) );
0 Comments
Star Strider
on 9 Oct 2016
I have no idea what ‘fun’ does or what ‘all_vals’ contains, but you can do something like this to create a logical vector output:
all_vals = randi(9, 10, 2); % Create Matrix
fun = @(x) x - 5; % Create Function
Out = (fun(all_vals(:,1)) .* fun(all_vals(:,2))) < 0; % Logical Vector Output
Elements of ‘Out’ equal to 1 are true so the condition was met, 0 are false.
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!