Difference between revisions of "OpenModelica/C2/Array-Functions-and-Operations/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
(2 intermediate revisions by one other user not shown)
Line 46: Line 46:
  
 
'''OMShell'''
 
'''OMShell'''
|| let us learn more about '''OMShell''' now.
+
|| Let us learn more about '''OMShell''' now.
  
'''OMShell''' is an interactive command line tool.  
+
*'''OMShell''' is an interactive command line tool.  
  
It is a part of '''OpenModelica'''.
+
*It is a part of '''OpenModelica'''.
  
'''OpenModelica compiler''' can be invoked using '''commands''' typed in '''OMShell'''.
+
*'''OpenModelica compiler''' can be invoked using '''commands''' typed in '''OMShell'''.
  
It can be used for loading '''classes''' and simulating them.
+
*It can be used for loading '''classes''' and simulating them.
  
'''Functions''' can also be called in '''OMShell'''.
+
*'''Functions''' can also be called in '''OMShell'''.
  
 
|-
 
|-
||  
+
|| Narration
 
|| We shall now use '''classes''' named '''polynomialEvaluatorUsingVectors''' and '''functionTester''' to demonstrate '''OMShell'''.  
 
|| We shall now use '''classes''' named '''polynomialEvaluatorUsingVectors''' and '''functionTester''' to demonstrate '''OMShell'''.  
  
 
These '''classes''' were discussed in previous tutorials.
 
These '''classes''' were discussed in previous tutorials.
  
For more information on these '''classes''', please watch the prerequisite tutorials.
+
|-
 +
||Narration
 +
||For more information on these '''classes''', please watch the prerequisite tutorials.
 +
 
 +
|-
 +
||Narration
 +
||All the '''commands''' to be used in this tutorial are provided in a file named '''OMShell-commands.txt'''.  
  
All the '''commands''' to be used in this tutorial are provided in a file named '''OMShell-commands.txt'''.
 
  
 
You may locate and download all the '''code files''' available on our website.  
 
You may locate and download all the '''code files''' available on our website.  
Line 76: Line 81:
 
|| Now let me launch '''OMShell'''.  
 
|| Now let me launch '''OMShell'''.  
  
To open '''OMShell''' on '''Ubuntu''' Operating System,  
+
To open '''OMShell''' on '''Ubuntu''' Operating System, click on '''Dash Home''' icon at top left in the launcher.
 
+
Click on '''Dash Home''' icon at top left in the launcher.
+
  
 
|-
 
|-
|| Type '''OMShell''' in the address box.
+
|| Type '''OMShell''' >> click on '''OMShell''' icon
|| Type '''OMShell''' in the address box.
+
|| Type '''OMShell''' in the search bar.
 +
 
  
 
Click on '''OMShell''' icon.  
 
Click on '''OMShell''' icon.  
  
In '''Windows''', you may find the icon in '''Start''' menu.
+
|-
 +
||
 +
||In '''Windows''', you may find the icon in '''Start''' menu.
  
 
|-
 
|-
 
|| /* OMShell */
 
|| /* OMShell */
|| Now let us learn a few useful commands.
+
|| Now, let us learn a few useful commands.
 +
 
  
 
Firstly, go to the location where you saved the text file named '''OMShell-commands.txt''' and open it.  
 
Firstly, go to the location where you saved the text file named '''OMShell-commands.txt''' and open it.  
 +
  
 
Note that this file has all the '''commands''' to be used in this tutorial.  
 
Note that this file has all the '''commands''' to be used in this tutorial.  
Line 98: Line 106:
 
Hence, you may refer to this file whenever in doubt.  
 
Hence, you may refer to this file whenever in doubt.  
  
Now let me switch to '''OMShell'''.
+
|-
 +
||Switch to '''OMShell'''
 +
||Now let me switch to '''OMShell'''.
  
 
|-
 
|-
Line 111: Line 121:
  
 
|-
 
|-
|| Type // '''cd(“path”)''' //
+
||
 
|| Now let us change current directory to the location where you have saved the '''code files'''.
 
|| Now let us change current directory to the location where you have saved the '''code files'''.
  
Let me change directory on my system.
+
|-
 +
|| Type // '''cd(“path”)''' //
 +
|| Let me change directory on my system.
  
 
Type '''cd'''(open and close parentheses) (within double quotes), specify the path.
 
Type '''cd'''(open and close parentheses) (within double quotes), specify the path.
Line 132: Line 144:
 
Type '''loadFile''' (within parentheses) (within double quotes) '''polynomialEvaluatorUsingVectors.mo'''.
 
Type '''loadFile''' (within parentheses) (within double quotes) '''polynomialEvaluatorUsingVectors.mo'''.
  
Note that '''F''' is upper-case in '''loadFile()''' command.
+
|-
 +
||Highlight
 +
||Note that '''F''' is upper-case in '''loadFile()''' command.
  
This command can be used to load '''class''' or '''model''' files with a file extension of '''.mo'''.
+
|-
 +
||Press '''Enter'''
 +
||This command can be used to load '''class''' or '''model''' files with a file extension of '''.mo'''.
  
 
Now press '''Enter'''.
 
Now press '''Enter'''.
Line 155: Line 171:
  
 
|-
 
|-
|| Type // '''loadFile(“functionTester.mo”) '''//
+
|| Type // '''loadFile(“functionTester.mo”) '''// >> Press '''Enter'''
|| Let me now load '''functionTester''' class.
+
|| Let me now load '''functionTester class'''.
  
 
Type '''loadFile''' (open and close parentheses) (within double quotes) '''functionTester.mo'''.
 
Type '''loadFile''' (open and close parentheses) (within double quotes) '''functionTester.mo'''.
Line 163: Line 179:
  
 
|-
 
|-
|| Type // '''simulate(functionTester,startTime=0,stopTime=1) '''//
+
|| Type // '''simulate(functionTester,startTime=0,stopTime=1) '''// >> Press '''Enter'''
|| Now let us simulate '''functionTester''' class.
+
|| Now let us simulate '''functionTester class'''.
  
 
Type '''simulate''' (within parentheses) '''functionTester''' (comma) '''startTime''' (equals) '''0 stopTime''' (equals) '''1'''.
 
Type '''simulate''' (within parentheses) '''functionTester''' (comma) '''startTime''' (equals) '''0 stopTime''' (equals) '''1'''.
Line 174: Line 190:
 
|| The simulation is now complete.
 
|| The simulation is now complete.
  
Let us plot variable '''z''' from '''functionTester''' class.
+
|-
 +
||
 +
||Let us plot variable '''z''' from '''functionTester''' class.
  
 
|-
 
|-
|| Type // '''plot({z}) '''//
+
|| Type // '''plot({z}) '''// >> press '''Enter'''
 
|| Type '''plot''' (within parentheses) (within curly braces) '''z''' and press '''Enter'''.  
 
|| Type '''plot''' (within parentheses) (within curly braces) '''z''' and press '''Enter'''.  
  
Line 183: Line 201:
  
 
|-
 
|-
||  
+
|| Back to the slides
 
|| Now let me go back to the slides.
 
|| Now let me go back to the slides.
  
Line 196: Line 214:
  
 
|| '''Array construction functions''' are used to construct '''arrays''' of given size.
 
|| '''Array construction functions''' are used to construct '''arrays''' of given size.
 +
  
 
Now let us take a look at a few '''array construction functions'''.
 
Now let us take a look at a few '''array construction functions'''.
Line 201: Line 220:
 
We will also practice them using '''OMShell'''.
 
We will also practice them using '''OMShell'''.
  
'''fill()''' is function used to create an '''array''' with all the elements same.
+
*'''fill()''' is function used to create an '''array''' with all the elements same.
  
The syntax for '''fill''' is as shown.  
+
:The syntax for '''fill''' is as shown.  
  
First '''argument''' represents the number which fills the '''array'''.  
+
*First '''argument''' represents the number which fills the '''array'''.  
  
Remaining '''arguments''' represent the size of each dimension.
+
*Remaining '''arguments''' represent the size of each dimension.
  
'''zeros()''' is a function used to create an '''array''' filled with zeros.
+
*'''zeros()''' is a function used to create an '''array''' filled with zeros.
  
Syntax for '''zeros()''' function is as shown.  
+
:Syntax for '''zeros()''' function is as shown.  
  
'''Arguments''' represent the size of each dimension of the array.
+
*'''Arguments''' represent the size of each dimension of the array.
  
'''identity()''' function creates an identity matrix.  
+
*'''identity()''' function creates an identity matrix.  
  
It takes one '''argument''' that represents the size of both dimensions.
+
:It takes one '''argument''' that represents the size of both dimensions.
  
 
|-
 
|-
||  
+
|| Back to '''OMShell'''
 
|| Now let me demonstrate these functions using '''OMShell'''.  
 
|| Now let me demonstrate these functions using '''OMShell'''.  
 +
  
 
Let me go back to '''OMShell'''.
 
Let me go back to '''OMShell'''.
Line 231: Line 251:
 
|| Type '''fill'''(within parentheses)''' 5''' (comma) '''2''' (comma) '''2'''.  
 
|| Type '''fill'''(within parentheses)''' 5''' (comma) '''2''' (comma) '''2'''.  
  
This command generates a two by two matrix with all its elements be in '''5'''.  
+
This command generates a two by two matrix with all its elements being '''5'''.  
  
The first arguments represents the element to be filled within the array.  
+
The first '''arguments''' represents the element to be filled within the '''array'''.  
  
 
'''2''' represents the size of first dimension.
 
'''2''' represents the size of first dimension.
Line 239: Line 259:
 
and the third argument '''2''', represents the size of second dimension.
 
and the third argument '''2''', represents the size of second dimension.
  
Now press Enter.
+
|-
 +
||Press '''Enter'''
 +
||Now press '''Enter'''.
  
The result is as expected.
+
|-
 +
||Result shown on screen
 +
||The result is as expected.
  
 
Elements with one set of curly braces represent a row.
 
Elements with one set of curly braces represent a row.
Line 248: Line 272:
  
 
|-
 
|-
|| Type // '''zeros(2,2)''' //
+
|| Type // '''zeros(2,2)''' // >> press '''Enter'''.
|| Now let us use '''zeros()''' function to create a (two by two) matrix with all its elements '''zero'''.
+
|| Now let us use '''zeros() function''' to create a (two by two) matrix with all its elements '''zero'''.
  
 
Type '''zeros''' (within parentheses) '''2''' (comma)  '''2''' and press '''Enter'''.
 
Type '''zeros''' (within parentheses) '''2''' (comma)  '''2''' and press '''Enter'''.
  
The result is as expected.
+
|-
 +
||Result shown on screen
 +
||The result is as expected.
  
 
|-
 
|-
 
|| Type // '''identity(3)''' //
 
|| Type // '''identity(3)''' //
|| Let us now try '''identity''' function.  
+
|| Let us now try '''identity function'''.  
  
 
Type '''identity(3)'''.
 
Type '''identity(3)'''.
  
This creates an identity matrix which is '''3''' (by) '''3''' in its size.
+
This creates an '''identity''' matrix which is '''3''' (by) '''3''' in its size.
  
 
|-
 
|-
Line 267: Line 293:
 
|| We can also perform '''arithmetic operations''' and use '''assignment statements''' in '''OMShell'''.
 
|| We can also perform '''arithmetic operations''' and use '''assignment statements''' in '''OMShell'''.
  
|-
+
Let us create two matrices and perform '''arithmetic operations''' on them.
|| Type // '''a:=[1,2;3,4] '''//
+
|| Let us create two matrices and perform '''arithmetic operations''' on them.
+
  
Type '''a''' (colon) (equals) (within square brackets) '''1''' (comma) '''2''' (semicolon) '''3''' (comma) '''4'''.  
+
|-
 +
|| Type // '''a:=[1,2;3,4] '''// >> press '''Enter'''
 +
|| Type '''a''' (colon) (equals) (within square brackets) '''1''' (comma) '''2''' (semicolon) '''3''' (comma) '''4'''.  
  
'''Comma''' is used to separate elements in a row whereas '''semi-colon''' is used to separate rows themselves.
+
*'''Comma''' is used to separate elements in a row  
 +
*whereas '''semi-colon''' is used to separate rows themselves.
  
 
Now press '''Enter'''.
 
Now press '''Enter'''.
  
 
|-
 
|-
|| Type // '''b:=identity(2) '''//
+
|| Type // '''b:=identity(2) '''// >> press '''Enter'''
 
|| Type '''b''' (colon) (equals) '''identity (2)'''.
 
|| Type '''b''' (colon) (equals) '''identity (2)'''.
  
This generates a '''2 by 2''' identity matrix.
+
This generates a '''2 by 2 identity''' matrix.
  
 
|-
 
|-
|| Type // '''a + b '''//
+
|| Type // '''a + b '''// >> press '''Enter'''
|| Now let us performs arithmetic operations on '''a''' and '''b'''.
+
|| Now let us perform '''arithmetic operations''' on '''a''' and '''b'''.
  
 
Type '''a''' (plus) '''b''' and press '''Enter'''.
 
Type '''a''' (plus) '''b''' and press '''Enter'''.
Line 292: Line 319:
  
 
|-
 
|-
|| Type // '''a * b''' //
+
|| Type // '''a * b''' // >> press '''Enter'''
 
|| Type '''a''' (asterisk)''' b'''.
 
|| Type '''a''' (asterisk)''' b'''.
  
Line 300: Line 327:
  
 
|-
 
|-
|| Type // '''a .* b''' //
+
|| Type // '''a .* b''' // >> press '''Enter'''
 
|| Type '''a''' (dot) (asterisk) '''b''' and press '''Enter'''.
 
|| Type '''a''' (dot) (asterisk) '''b''' and press '''Enter'''.
  
Line 310: Line 337:
  
 
|-
 
|-
||  
+
||Back to the slides
 
|| Now let me switch back to the slides.
 
|| Now let me switch back to the slides.
  
Line 319: Line 346:
 
|| '''Reduction functions''' take '''array''' as '''input''' and return '''scalar''' as '''output'''.
 
|| '''Reduction functions''' take '''array''' as '''input''' and return '''scalar''' as '''output'''.
  
'''min()''' is a function which returns the smallest value in an array.
+
'''min()''' is a '''function''' which returns the smallest value in an '''array'''.
  
Similarly, '''max()''' function returns the largest value in an array.
+
Similarly, '''max() function''' returns the largest value in an '''array'''.
  
 
'''sum()''' returns the sum of all elements
 
'''sum()''' returns the sum of all elements
Line 328: Line 355:
  
 
|-
 
|-
||  
+
||Switch to '''OMShell''' 
 
|| Let me switch to '''OMShell''' to demonstrate these functions.
 
|| Let me switch to '''OMShell''' to demonstrate these functions.
  
Line 338: Line 365:
  
 
|-
 
|-
|| Type // '''min(x)''' //
+
|| Type // '''min(x)''' // >> press '''Enter'''
 
|| Type '''min (x)''' to obtain the minimum value of '''x'''.
 
|| Type '''min (x)''' to obtain the minimum value of '''x'''.
  
 
|-
 
|-
|| Type // '''max(x)''' //
+
|| Type // '''max(x)''' // >> press '''Enter'''
 
|| Type '''max (x)''' to obtain the largest value in array '''x'''..
 
|| Type '''max (x)''' to obtain the largest value in array '''x'''..
  
 
|-
 
|-
|| Type // '''sum(x) '''//
+
|| Type // '''sum(x) '''// >> press '''Enter'''
 
|| Similarly type '''sum (x)''' to obtain the sum of all elements.
 
|| Similarly type '''sum (x)''' to obtain the sum of all elements.
  
 
|-
 
|-
|| Type // '''product(x)''' //
+
|| Type // '''product(x)''' // >> press '''Enter'''
 
|| and '''product (x)''' to obtain the product of individual elements min array '''x'''.
 
|| and '''product (x)''' to obtain the product of individual elements min array '''x'''.
  
 
|-
 
|-
||  
+
|| Back to the slides
 
|| Let me go back to the slides once again.
 
|| Let me go back to the slides once again.
  
Line 361: Line 388:
  
 
'''Miscellaneous functions'''
 
'''Miscellaneous functions'''
|| Let us now discuss various other functions that take an '''array''' as '''input'''.
+
|| Let us now discuss various other '''functions''' that take an '''array''' as '''input'''.
  
'''abs()''' is a function which returns an array with the absolute values of all its elements.
+
*'''abs()''' is a '''function''' which returns an '''array''' with the '''absolute values''' of all its elements.
  
'''size()''' returns a vector with the size of each dimension.
+
*'''size()''' returns a vector with the size of each dimension.
  
'''ndims()''' returns the number of dimensions in an array.
+
*'''ndims()''' returns the number of dimensions in an array.
  
 
|-
 
|-
||  
+
|| '''Summary Slide'''
 
|| This brings us to the end of this tutorial.  
 
|| This brings us to the end of this tutorial.  
  
 
In this tutorial, we used '''OMShell''' to interactively demonstrate '''array functions'''.  
 
In this tutorial, we used '''OMShell''' to interactively demonstrate '''array functions'''.  
  
These functions are part of '''Modelica''' language specification.  
+
These '''functions''' are part of '''Modelica''' language specification.  
  
 
Hence, they may be used while writing '''classes''' in '''OMEdit''' as well.  
 
Hence, they may be used while writing '''classes''' in '''OMEdit''' as well.  
Line 383: Line 410:
  
 
'''Assignment'''
 
'''Assignment'''
|| As an assignment, apply '''abs(), '''ndims()''' and '''size()''' functions to an array.
+
|| As an assignment, apply '''abs(), '''ndims()''' and '''size() functions''' to an '''array'''.
  
Secondly, we have used a two-dimensional array or matrix as an argument to most of the functions.  
+
Secondly, we have used a '''two-dimensional array''' or matrix as an '''argument''' to most of the '''functions'''.  
  
As an assignment, implement all these functions with three dimensional arrays.
+
As an assignment, implement all these '''functions''' with '''three-dimensional arrays'''.
  
 
|-
 
|-

Latest revision as of 12:31, 22 March 2016

Visual Cue Narration
Slide:

Title Slide

Welcome to the Spoken Tutorial on Array Functions and Operations.
Slide:

Learning Objectives

In this tutorial, we are going to learn:
  • how to use OMShell
  • how to use array construction functions.
  • how to perform arithmetic operations on vectors and matrices.
  • how to use array conversion functions.
Slide:

System Requirements

To record this tutorial, I am using
  • OpenModelica 1.9.2
  • Ubuntu Operating System version 14.04 and
  • gedit

Windows users may use any text editor like Notepad instead of gedit.

Slide:

Prerequisites

To understand and practice this tutorial, you need
  • knowledge of function and array declaration in Modelica.
  • Prerequisite tutorials are mentioned on our website.
  • Please go through them.
Slide:

OMShell

Let us learn more about OMShell now.
  • OMShell is an interactive command line tool.
  • It is a part of OpenModelica.
  • OpenModelica compiler can be invoked using commands typed in OMShell.
  • It can be used for loading classes and simulating them.
  • Functions can also be called in OMShell.
Narration We shall now use classes named polynomialEvaluatorUsingVectors and functionTester to demonstrate OMShell.

These classes were discussed in previous tutorials.

Narration For more information on these classes, please watch the prerequisite tutorials.
Narration All the commands to be used in this tutorial are provided in a file named OMShell-commands.txt.


You may locate and download all the code files available on our website.

Please save all these code files in one directory for easy access.

Click on Search icon in Icon Tray. Now let me launch OMShell.

To open OMShell on Ubuntu Operating System, click on Dash Home icon at top left in the launcher.

Type OMShell >> click on OMShell icon Type OMShell in the search bar.


Click on OMShell icon.

In Windows, you may find the icon in Start menu.
/* OMShell */ Now, let us learn a few useful commands.


Firstly, go to the location where you saved the text file named OMShell-commands.txt and open it.


Note that this file has all the commands to be used in this tutorial.

Hence, you may refer to this file whenever in doubt.

Switch to OMShell Now let me switch to OMShell.
Type // cd() // Type cd open and close parentheses.

Press Enter to display the result produced on execution of the command.

This prints the path to current directory.
Now let us change current directory to the location where you have saved the code files.
Type // cd(“path”) // Let me change directory on my system.

Type cd(open and close parentheses) (within double quotes), specify the path.

Press Enter.

Note that a Windows path uses forward slash unlike the backward slash used in Ubuntu.

Windows users need to be cautious of this fact.

Type // loadFile(“polynomialEvaluatorUsingVectors.mo”) // Now let us load polynomialEvaluatorUsingVectors function.

Type loadFile (within parentheses) (within double quotes) polynomialEvaluatorUsingVectors.mo.

Highlight Note that F is upper-case in loadFile() command.
Press Enter This command can be used to load class or model files with a file extension of .mo.

Now press Enter.

// true // If the file is found, OMShell returns true.
Type // polynomialEvaluatorUsingVectors(10) // Now let us call this function interactively.

Type polynomialEvaluatorUsingVectors (with an argument of) 10.

Press Enter.

This command takes an input argument of 10 units and displays the result.
Type // loadFile(“functionTester.mo”) // >> Press Enter Let me now load functionTester class.

Type loadFile (open and close parentheses) (within double quotes) functionTester.mo.

Press Enter.

Type // simulate(functionTester,startTime=0,stopTime=1) // >> Press Enter Now let us simulate functionTester class.

Type simulate (within parentheses) functionTester (comma) startTime (equals) 0 stopTime (equals) 1.

Press Enter.

The simulation is now complete.
Let us plot variable z from functionTester class.
Type // plot({z}) // >> press Enter Type plot (within parentheses) (within curly braces) z and press Enter.

This command generates a plot of variable z vs time.

Back to the slides Now let me go back to the slides.
Slide:

Array Construction Functions

  • fill()
  • zeros()
  • identity()
Array construction functions are used to construct arrays of given size.


Now let us take a look at a few array construction functions.

We will also practice them using OMShell.

  • fill() is function used to create an array with all the elements same.
The syntax for fill is as shown.
  • First argument represents the number which fills the array.
  • Remaining arguments represent the size of each dimension.
  • zeros() is a function used to create an array filled with zeros.
Syntax for zeros() function is as shown.
  • Arguments represent the size of each dimension of the array.
  • identity() function creates an identity matrix.
It takes one argument that represents the size of both dimensions.
Back to OMShell Now let me demonstrate these functions using OMShell.


Let me go back to OMShell.

/* OMShell */

Type // fill(5,2,2) //

Type fill(within parentheses) 5 (comma) 2 (comma) 2.

This command generates a two by two matrix with all its elements being 5.

The first arguments represents the element to be filled within the array.

2 represents the size of first dimension.

and the third argument 2, represents the size of second dimension.

Press Enter Now press Enter.
Result shown on screen The result is as expected.

Elements with one set of curly braces represent a row.

Hence this matrix has two rows and two columns.

Type // zeros(2,2) // >> press Enter. Now let us use zeros() function to create a (two by two) matrix with all its elements zero.

Type zeros (within parentheses) 2 (comma) 2 and press Enter.

Result shown on screen The result is as expected.
Type // identity(3) // Let us now try identity function.

Type identity(3).

This creates an identity matrix which is 3 (by) 3 in its size.

We can also perform arithmetic operations and use assignment statements in OMShell.

Let us create two matrices and perform arithmetic operations on them.

Type // a:=[1,2;3,4] // >> press Enter Type a (colon) (equals) (within square brackets) 1 (comma) 2 (semicolon) 3 (comma) 4.
  • Comma is used to separate elements in a row
  • whereas semi-colon is used to separate rows themselves.

Now press Enter.

Type // b:=identity(2) // >> press Enter Type b (colon) (equals) identity (2).

This generates a 2 by 2 identity matrix.

Type // a + b // >> press Enter Now let us perform arithmetic operations on a and b.

Type a (plus) b and press Enter.

This performs matrix addition.

Type // a * b // >> press Enter Type a (asterisk) b.

This performs matrix multiplication.

Press Enter.

Type // a .* b // >> press Enter Type a (dot) (asterisk) b and press Enter.

This performs element-wise multiplication of the two matrices.

Note that it is not necessary to define data-types of variables used in OMShell.
Back to the slides Now let me switch back to the slides.
Slide:

Reduction Functions

Reduction functions take array as input and return scalar as output.

min() is a function which returns the smallest value in an array.

Similarly, max() function returns the largest value in an array.

sum() returns the sum of all elements

and product() returns the product of all elements.

Switch to OMShell Let me switch to OMShell to demonstrate these functions.
x = [3,4;5,6] Let me create a new matrix.

x (colon)(equals) (within square brackets) 3 (comma) 4 (semicolon) 5 (comma) 6.

Type // min(x) // >> press Enter Type min (x) to obtain the minimum value of x.
Type // max(x) // >> press Enter Type max (x) to obtain the largest value in array x..
Type // sum(x) // >> press Enter Similarly type sum (x) to obtain the sum of all elements.
Type // product(x) // >> press Enter and product (x) to obtain the product of individual elements min array x.
Back to the slides Let me go back to the slides once again.
Slide:

Miscellaneous functions

Let us now discuss various other functions that take an array as input.
  • abs() is a function which returns an array with the absolute values of all its elements.
  • size() returns a vector with the size of each dimension.
  • ndims() returns the number of dimensions in an array.
Summary Slide This brings us to the end of this tutorial.

In this tutorial, we used OMShell to interactively demonstrate array functions.

These functions are part of Modelica language specification.

Hence, they may be used while writing classes in OMEdit as well.

Slide:

Assignment

As an assignment, apply abs(), ndims() and size() functions to an array.

Secondly, we have used a two-dimensional array or matrix as an argument to most of the functions.

As an assignment, implement all these functions with three-dimensional arrays.

Slide:

About the Spoken Tutorial project

Watch the video available at the following link:

http://spoken-tutorial.org /What\_is\_a\_Spoken\_Tutorial

Its summarises the Spoken Tutorial project.

Slide:

Spoken Tutorial Workshops

We conducts workshops using spoken tutorials.

Give certificates.

Please contact us.

Slide:

Forum to answer questions

If you have questions in this spoken tutorial, please visit the webpage mentioned.
Slide:

Textbook Companion Project

We coordinate coding of solved examples of popular books.

Please contact us.

Slide:

Lab Migration Project

We help migrate commercial simulator labs to OpenModelica.
Slide:

Acknowledgements

Spoken Tutorial Project is funded by NMEICT, MHRD Government of India.
Slide:

Thanks

We thank the development team of OpenModelica for their support.

Thank you.

Contributors and Content Editors

Kaushik Datta, Nancyvarkey