[Scilab-users] How to convert the ~ input placeholder <= Re: convert matlab code to scilab

Samuel Gougeon sgougeon at free.fr
Sat Nov 23 15:35:31 CET 2019


HelloPhilipp, and to all (former ;-) matlabers,

Le 16/10/2019 à 11:46, P M a écrit :
> Dear experts,
>
> trying to convert a matlab code to scilab I come across following line:
> [~,~,Minstances_hat]  =  unique(B(:));
> How to replace the "~" symbol?
> B is the blue channel of a RGB image...hence a m x n matrix of 
> integers (type(B) = 8 )


This issue is now reported as bug 16250 
<http://bugzilla.scilab.org/show_bug.cgi?id=16254>.

Solving this issue would improve the converter.
I may contribute to solve it. However, I do not use to use Matlab or 
Octave. So i don't know how the ~ placeholder set in the list of 
/inputs/ is processed inside the called function. This message is a call 
for information about this topic.

Ignoring an output is trivial. As suggested by Stéphane, the ans 
variable is a good candidate as replacement for ~,
just as a fake recipient, as in "[~, ia] = unique(A)"   => "[ans, ia] = 
unique(A)"

The meaning of ignoring an input is a priori completely different, at 
least from a Scilab point of view.

This leads to the fact that, on the "function ..." line, the converter 
will have to distinguish the list of inputs from the list of outputs, 
and then process the same ~ character in 2 different ways.
This processing would have to run also when the "function ..." line is 
split on several rows with the "..." continuation marks.

First, i will need an actual example of function call with ~ in the 
input list, runnable in Octave.
Any compact suggestion is welcome.
At least 2 use cases are expected: one calling a function written in 
Octave/Matlab language (improperly called "macros" in Scilab), the other 
one calling a hard-coded function.

Let's consider the first case, with a "macro":

  * What does  the ~ sent placeholder pass to the function? How is it
    detected/detectable inside the macro ?
  * How is it processed by the function? Is there a generic default
    processing, as replacing it with the empty matrix [], or whatever else?

Hope reading your contributions,

Regards
Samuel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20191123/5bd43289/attachment.htm>


More information about the users mailing list