调整 Octave 基本操作 内容.

Signed-off-by: lion.chan <cy187lion@sina.com>
This commit is contained in:
lion.chan 2022-09-07 10:25:49 +08:00
parent 7f4dcd4553
commit 0ce74a71e7
5 changed files with 84 additions and 36 deletions

View File

@ -4,7 +4,7 @@ title: "Octave 基本操作"
subtitle: ""
description: "对 Octave 的常用计算功能进行说明。"
excerpt: "描述 Octave 的功能,并对其使用做出基本指导。"
date: 2022-09-06 09:03:00
date: 2022-09-07 10:25:00
author: "Rick Chan"
tags: ["Applications", "Octave"]
categories: ["Software"]
@ -23,6 +23,12 @@ published: true
- [5.2. 函数](#52-函数)
- [6. 加载和保存数据](#6-加载和保存数据)
- [7. 绘制图形](#7-绘制图形)
- [7.1. 基本绘图](#71-基本绘图)
- [7.2. 为图像加标签](#72-为图像加标签)
- [7.3. 单窗口绘制多个图像](#73-单窗口绘制多个图像)
- [7.4. 在多个窗口中绘图](#74-在多个窗口中绘图)
- [7.5. 重绘图像](#75-重绘图像)
- [7.6. 将绘图保存为图片](#76-将绘图保存为图片)
- [8. 矢量](#8-矢量)
- [9. 工具包](#9-工具包)
- [9.1. 安装工具包包](#91-安装工具包包)
@ -150,13 +156,14 @@ printf 函数沿用了 C 语言的语法格式,所以如果你有学习过 C
除了使用 printf 外,利用 format long、format short 也可以指定打印的精度,在 Octave 中short 是默认的精度:
```m
octave:32> format long
octave:33> a
a = 3.14159265358979
octave:34> format short
octave:35> a
a = 3.1416
>> pi
ans = 3.1416
>> format long
>> pi
ans = 3.141592653589793
>> format short
>> pi
ans = 3.1416
```
## 4. 向量和矩阵
@ -302,7 +309,7 @@ V =
>> length(V)
ans = 4
octave:67> length(A)
>> length(A)
ans = 3
```
@ -310,6 +317,14 @@ ans = 3
我们还是以上一小节定义的矩阵 A 为例。
常数与矩阵相乘:
```m
>> oa=e.^A
```
生成的 oa 也为一个矩阵,其中每个元素的值为 e 的 A(x) 次幂。
获取矩阵指定行指定列的元素,注意这里的行、列都是从 1 开始的,比如获取矩阵 A 的第 3 行第 2 列元素:
```m
@ -489,19 +504,19 @@ ans =
除此以外Octave 中内置的一些函数也是针对每个元素做运算的,比如对数运算、指数运算和绝对值运算等:
```m
octave:50> log([1; 2; 3])
>> log([1; 2; 3])
ans =
0.00000
0.69315
1.09861
octave:51> exp([1; 2; 3])
>> exp([1; 2; 3])
ans =
2.7183
7.3891
20.0855
octave:53> abs([1; -2; 3])
>> abs([1; -2; 3])
ans =
1
2
@ -788,7 +803,7 @@ featuresX =
456 2
789 3
octave:15> pricesY
>> pricesY
pricesY =
11
22
@ -828,13 +843,11 @@ featuresX.dat hello.mat pricesY.dat
## 7. 绘制图形
在本篇文章的最后一节,我们来简单的说下 Octave 的绘图能力。
### 7.1. 基本绘图
不像其他语言那般繁琐Octave 中绘图的接口设计的非常简洁和直观,让你非常容易上手
以绘制一个 sin 函数曲线和一个 cos 函数曲线为例,来说明如何在 Octave 中绘图
我们以绘制一个 sin 函数曲线和一个 cos 函数曲线为例,来说明如何在 Octave 中绘图。
首先,我们还是先来定义数据
首先,先来定义数据:
```m
>> t = [0:0.01:0.98];
@ -850,20 +863,22 @@ featuresX.dat hello.mat pricesY.dat
之后会立即在一个新窗口生成我们想要的图形
sin 函数
![sin 函数](img/Octave_基本操作/001.png)
接下来我们继续在这个图像上绘制 cos 函数。这时需要用到 hold on 命令,它的作用是将新图像画在旧图像上面,而不是覆盖旧图像。
接下来继续在这个图像上绘制 cos 函数,此时需要用到 hold on 命令,它的作用是将新图像画在旧图像上面,而不是覆盖旧图像。
为了区分 sin 函数,我们将 cos 函数的曲线用红色标识:
```m
octave:10> hold on;
octave:11> plot(t,y2, 'r');
>> hold on;
>> plot(t, y2, 'r');
```
这个时候,你看到的图形应该是这个样子的:
sin 和 cos
![sin and cos](img/Octave_基本操作/002.png)
## 7.2. 为图像加标签
图形有了,最后一步就是标明横轴和纵轴分别代表的含义,再给图形起一个有意义的名字
@ -876,33 +891,66 @@ sin 和 cos
最终,这个图形是这样式的:
sin and cos
![with label](img/Octave_基本操作/003.png)
如果你愿意,还可以将其作为一个图片保存下来
以上动作也可以一次完成
```m
octave:16> print -dpng 'sin_cos.png'
>> plot(t, y1, t, y2, 'r'), xlabel('time'), ylabel('value'), legend('sin', 'cos'), title('sin and cos function');
```
### 7.3. 单窗口绘制多个图像
如果需要在同一窗口中时绘制多个图像,则可以使用 subplot() 函数:
```m
>> subplot(1, 3, 1); % 这样做是把窗口分成一个 1*2 的格子,使用第一个格子;
>> plot(t, y1);
>> subplot(1, 3, 2); % 使用第二个格子;
>> plot(t, y2, 'r');
>> axis([0.5 1 -1 1]) % 调整右边图像的 xy 坐标的范围。
>> subplot(1, 3, 3); % 使用第三个格子;
>> A = magic(5);
>> imagesc(A); % 生成一个 5*5 的色块
```
结果如下:
![绘制多个图像](img/Octave_基本操作/004.png)
### 7.4. 在多个窗口中绘图
如果需要在多个窗口中绘图,则可以使用 figure() 方法:
```m
>> figure(1);plot(t, y1);
>> figure(2);plot(t, y2);
```
### 7.5. 重绘图像
在绘图中,如果你反悔了,想重新绘图,怎么办呢?也很简单,只要输入 clf 命令Octave 会将绘图框中的图形全部清空。
不论何时,输入 close 命令Octave 会关闭该绘图窗口。
```m
>> figure(1);plot(t,y1);
>> figure(2);plot(t,y2);
>> clf;plot(t, y2, 'g');
>> close
```
这样就可以分别用两个窗口显示图像。
### 7.6. 将绘图保存为图片
如果你愿意,还可以将其作为一个图片保存下来:
```m
>> subplot(1,2,1); %这样做是把窗口分成一个 1*2 的格子,使用第一个格子;
>> plot(t,y1);
>> subplot(1,2,2);
>> plot(t,y2);
>> axis(0.5 1 -1 1) %调整右边图像的 xy 坐标的范围。
>> A = magic(5);
>> imagesc(A); %生成一个 5*5 的色块
>> print -dpng 'sin_cos.png'
```
该图像将被保存在 Octave 的当前执行路径下,可以使用 pwd 命令查看该路径:
```m
>> pwd
ans = C:\Users\Administrator
```
## 8. 矢量

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB