How to run a function for each rows and columns?

4 次查看(过去 30 天)
I have a function called distance, where the values of x0 and y0 are taken from data,
data = 150*(4*rand(2,100)-1); data = data.*rand(2,100);
where, x0 is the value of first row & y0 is the value of second row, now my concern, how to run the function to each values of x0 and y0 in data and store them in list_d
below are the A, B, C parameters,
A=0.0022;B=0.0061;c=0.4229;
Thanks in advance
function list_d = distance(x0,y0,A,B,C)
P=[x0; y0 ];
Q =-C+P(2);
n1 = 2*A^2;
n2= 3*A*B;
n3=(B^2-2*A*Q+1);
n4=-B*Q-P(1);
N = [n1 n2 n3 n4];
xT=roots(N);
list_d=[]; %list of distance
d_min = Inf;
for i =1:size(xT,1)
if isreal(xT(i)) %Test each xT
T=[xT(i); A.*xT(i)^2+B.*xT(i)+C];
d =norm(P-T);
list_d = [list_d d];
if (d < d_min)
d_min=d;
end
end
end
  7 个评论
dpb
dpb 2018-8-5
Well, there's no cell in sight so why use it?
Again, what's the problem in just putting your function in a loop and pass the necessary vectors to it?

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by