Difference between revisions of "Octave"
Dinas-emrys (talk | contribs) |
Dinas-emrys (talk | contribs) |
||
Line 35: | Line 35: | ||
{{ConsoleLine|octave:12>|system("chmod -R a+rX ~/www")}} | {{ConsoleLine|octave:12>|system("chmod -R a+rX ~/www")}} | ||
When the prompt returns, the file may be viewed in a browser. Every user has a personal URL. Your file may be viewed here: {{PersonalURL|path=sombrero.png}} | When the prompt returns, the file may be viewed in a browser. Every user has a personal URL. Your file may be viewed here: {{PersonalURL|path=sombrero.png}} | ||
=== Random Numbers === | === Random Numbers === | ||
We can produce results similar to those of throwing a six-sided die by using the '''rand''' function which returns a random value in the interval (0, 1). | We can produce results similar to those of throwing a six-sided die by using the '''rand''' function which returns a random value in the interval (0, 1). |
Revision as of 21:43, 26 March 2022
Octave[edit]
GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB.[1]
Preparation[edit]
In this exercise, you'll be generating graphic files by using Octave. In order to view these files, you'll save them in a special directory called "~www" which must be created in your home directory. The following instructions will instruct you on how to create this directory.
Create a directory to be served by the web server. If the directory already exists, no error will occur.
amrit-gupta@codermerlin:~$ mkdir --parents ~/www
Enter the directory.
amrit-gupta@codermerlin:~$ cd ~/www
Set the permissions so that the files can be accessed by the web server. If permission errors are encountered, re-execute this command.
amrit-gupta@codermerlin:~$ chmod -R a+rX ~/www
Graphing[edit]
Octave may be started by typing 'octave' in the shell. It's easiest to perform this in your www directory so the files that you create will be saved there.
liang-xue@codermerlin:~$ cd ~/www
liang-xue@codermerlin:~$ octave
You'll know you're in Octave when you see the Octave prompt.
octave:1>
In order to enable graphics plotting, execute the following command:
octave:1> graphics_toolkit("gnuplot")
We'll begin with a 3-D example to demonstrate the power of Octave and the ease with which complex graphs can be created.
Examples[edit]
3-D Sombrero Plot[edit]
octave:2> tx = ty = linspace (-8, 8, 41)';
octave:3> [xx, yy] = meshgrid (tx, ty);
octave:4> r = sqrt (xx .^ 2 + yy .^ 2) + eps;
octave:5> tz = sin (r) ./ r;
octave:6> mesh (tx, ty, tz);
octave:7> xlabel ("tx");
octave:8> ylabel ("ty");
octave:9> zlabel ("tz");
octave:10> title ("3-D Sombrero plot");
We can now print the plot to a file with:
octave:11> print -dpng sombrero.png
It may take a few seconds to produce the file; be patient.
It's necessary to adjust the file's permissions to enable web server access. This may easily be performed from within octave using the following command:
octave:12> system("chmod -R a+rX ~/www")
When the prompt returns, the file may be viewed in a browser. Every user has a personal URL. Your file may be viewed here: You must be logged in to view your personal URL.
Random Numbers[edit]
We can produce results similar to those of throwing a six-sided die by using the rand function which returns a random value in the interval (0, 1).
octave:13> rand
Try executing this command several times and observe the results. In order to obtain integer values in the range from 1 to 6 we'll multiply the result of rand by 6, add 1, and then take the floor of this result.
octave:16> floor(6*rand + 1)
Try executing this command several times and observe the results.
Array of Random Numbers[edit]
An array of 10 random throws of a six-sided die can be produced as follows.
octave:17> A = floor(6 * rand(10, 1) + 1)
Reading from a Remote URL[edit]
We can read the contents of a remote URL using the following command:
octave:17> s = urlread ("https://www.codermerlin.com/users/john-williams/sample.csv");
Reading from a String[edit]
We can read the contents of a string using the following command, interpreting each value read as a Double:
octave:18> A = strread(s, "%n");
Appending from a String[edit]
We can append the contents of a string to an existing array using the following command:
octave:18> A = [A; strread(s, "%n")];
References[edit]
- ↑ Gnu Octave. (2022, February, 10). In Wikipedia. https://en.wikipedia.org/wiki/GNU_Octave