summaryrefslogtreecommitdiff
path: root/macros/octave_fun.sci
blob: da8b3ac4f37beb8fb4b1c227e7a093a24763ebeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// Copyright (C) 2019 - IIT Bombay - FOSSEE
//
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution.  The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
// Author: Rupak Rokade
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in


function [y] = octave_fun()
    //   Calls an octave function with given inputs and returns the expected output
    //
    //   Syntax
    //   [y1, y2, ...] = octave_fun("octave_function",input1,input2,...)
    //   [y1, y2, ...] = octave_fun("octave_function",input1,input2,...,optional_input1,optional_input2,...)
    //   [y1, y2, ...] = octave_fun("octave_function","octave_package",input1,input2,...)
    //   [y1, y2, ...] = octave_fun("octave_function","octave_package",input1,input2,...,optional_input1,optional_input2,...)
    //   
    //   Parameters
    //   y : ouput as returned by octave. It can be a vector or matrix of doubles
    //   octave_function : name of the function in octave that has to be called. It has to be a string in double quotes
    //   input : input as expected by the octave function. It can be a vector or matrix of doubles
    //   optional_input : an optional argument that the given octave function can accept. It has to be a string in double quotes
    //   octave_package : name of the package in octave that has to be loaded as required by the octave function. It has to be a string in double quotes
    //   
    //   Description
    //   This function accepts an octave function name with the relevant inputs and returns the output as generated. It requires Octave to be installed along with necessary packages.
    //
    //   <latex>
    //  \begin{eqnarray}
    // &\mbox{min}_{x}
    // & C^T⋅x \\
    // & \text{subject to}& A⋅x = b \\
    // & & G⋅x \preceq_K h \\
    // & & x_i \in \{0,1\}, i \in \!\, bool_vars\
    // & & x_j \in \!\, \mathbb{Z}, i \in \!\, int_vars\\
    //  \end{eqnarray}
    //   </latex>
    //
    // Examples 
    // // Finding the inverse of a matrix using octave
    // A=[1 2 3;4 5 6;7 8 0]
		// y = octave_fun("inv",A)
		// y*A
		//
    // Examples
    //
    // // Finding the roots of a polynomial using its coefficients as inputs, using octave
    // p = [1 2 3];
    // y = octave_fun("roots",p)
		//
    // Examples
    //
    // // Generating filter coefficients of a Hamming window of length M, using octave.
		// M = 5
    // y = octave_fun("hamming",M)
		//
    // Examples
    //
    // // Generating filter coefficients of a Hamming window of length M with optional arguments, using octave.
		// M = 5
    // y = octave_fun("hamming",M,"periodic")
		//
		//
    // Examples
    //
    // // Generating an elliptic or Cauer filter with given passband ripple and stopband attenuation, using octave and its "signal" package. 
		// // See help in octave for more information about "ellip" function. 
		// // Note that this example requires the "signal" package to be installed in octave.
    // [b, a]=octave_fun("ellip","signal",5,1,90,[0.1 0.2])
		//
// Authors
// Rupak Rokade
endfunction