Thank you for the reply, but that's not exactly what I needed. Perhaps I didn't make myself clear. My vr3() function already does return a 15x1 vector (or maybe, I should call it a column), because a_w15 (b_w15 and so on) are all 15x1 matrices.

Suppose for clarity I make mu and everything else global, and leave vr3(C) with the same lines inside that I wrote earlier. I can use it on some C_inh, like this for example:

C_inh = [0.5 0.5 0.8];
s = vr3(C_inh);

Then, I take some other values as an initial guess, say C_init = [1 1 1], and try to restore C_inh using lsqrsolve(). As far as I can see from its help page, I need a function of the following kind:

function e = err(C2)
 e = s - vr3(C2);
endfunction

But it wouldn't work: [C, v] = lsqrsolve(C_init, err, 15) gives me error 58: Function has no input argument. Seems either vr3() must be modified to work with individual values, or I'm doing something wrong.

Best regards,
Viktor

22.12.2016 11:33, Dang Ngoc Chan, Christophe пишет:
Hello,

De : Viktor Goryainov
Envoyé : mercredi 21 décembre 2016 16:43

I have a function that takes tabulated values from several arrays (a_w15, 
b_w15, etc.) and thus returns a vector:
[...]
Now I need to [...] generate a vector

I'm not sure I understand well your problem with lsqrsolve(),
but if you want to generate a vector,
you should replace the if test by something like

----------
r = zeroes (dd); // initialization, not necessary but imho good practice
ddboolean = (dd<0.25);
r(ddboolean) = 0.319 * dd(ddboolean) / mu;
r(~ddboolean) = (0.267 * dd(~ddboolean)  + 0.013) / mu;
----------

So the whole function may look like:

----------
function r = vr3(C, mu)
  a = a_w15 + a_chl15 * C(1) + a_sm15 * C(2) + a_doc15 * C(3);
  bb = b_w15 + b_chl15 * C(1) + b_sm15 * C(2);
  dd = bb ./ a;

r = zeroes (dd);
ddboolean = (dd<0.25);
r(ddboolean) = 0.319 * dd(ddboolean) / mu;
r(~ddboolean) = (0.267 * dd(~ddboolean)  + 0.013) / mu;
endfunction
----------

Hope this helps

--
Christophe Dang Ngoc Chan
Mechanical calculation engineer
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error), please 
notify the sender immediately and destroy this e-mail. Any unauthorized 
copying, disclosure or distribution of the material in this e-mail is strictly 
forbidden.
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to