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