使用 Octave 脚本进行字符模式(shell/ASCII)绘图

2023-12-05

在交互式 shell 会话中运行 Octave 时,我知道我可以显示字符模式/ASCII 绘图,如下所述:使用 Matlab / Octave 绘制字符模式(shell)图?

我的问题是,当我的八度脚本非交互式运行时,我希望得到这种输出。也就是说,我希望能够运行如下所示的操作:

#!/usr/bin/octave -qf

plot(sin(0:7))

并有如下输出:

    1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      >      +   ---+      +      +      +      +      >
      >      +---    |                                 >
      >     |         |                                >
      >    |           |                               >
  0.5 >+  |             |                             +>
      >   |             |                            | >
      >  |               |                           | >
      > |                 |                         |  >
      >|                   +                       |   >
    0 >+                    |                     |   +>
      >                      |                    |    >
      >                      |                   |     >
      >                       |                 +      >
      >                        |               |       >
      >                         |             |        >
 -0.5 >+                        |            |        +>
      >                          |           |         >
      >                           +---      |          >
      >                               --   |           >
      >      +      +      +      +     -+|     +      >
   -1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      1      2      3      4      5      6      7      8

如果我在 ssh 会话中打开 Octave,然后在 Octave 终端调用我的脚本,我就会得到该输出:

octave:1> testplot.m

但我真正想做的是从其他 bash 脚本调用 testplot.m,例如:

$ ./testplot.m

or

$ octave testplot.m

两者实际上都没有给出任何绘图输出。

我注意到交互式会话输出似乎会随着终端窗口的大小自动缩放,因此从这个意义上说它取决于会话。

感谢您的帮助!

澄清 - 我知道如何创建关闭图形可见性的绘图,但我试图避免必须单独下载绘图文件。

我还发现了这个线程:基于 Unix ASCII 的命令行图表/绘图工具,但 eplot 似乎给了我错误(可能是用户错误、错误的数据格式等,但我不确定),而且我更喜欢将内容保留在八度音程中 - 八度音程已经完全符合我的要求,只要我正在参加互动会议!


您所要做的就是添加一个pause在 Octave 脚本的末尾。

问题是,你的脚本已经在最后显示了情节,但程序在你调用后立即结束plot,所以程序退出,你甚至没有注意到情节。

在下图中,我添加了 Graphics_toolkit 和 gnuplot 终端类型的设置,不是因为您的问题需要它,而是因为在我的系统上默认绘图会有所不同。

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Octave 脚本进行字符模式(shell/ASCII)绘图 的相关文章

  • 错误:“x”未定义

    我在运行 Octave 函数 ODE 时遇到问题 我已经尝试过针对此问题的现有解决方案 但没有任何效果 我也尝试过将文件名另存为egzamin m但它也不起作用 来自八度的代码 function dx egzamin x t dx zero
  • 在 C 中调用 GNU Octave 函数?

    我想使用矩阵代数和优化 我已经测试了不同的矩阵代数 C 和 C 库 但这些库的问题是它们不能像 GNU Octave 那样处理垃圾数据 C 和 C 中的垃圾数据会降低到 e 8 但在 GNU Octave 中 它将降低到 e 17 如果您计
  • 对嵌套结构中的所有值进行索引

    我有一个嵌套结构 其中包含值并定义为 mystruct level1 a 1 mystruct level1 b 2 mystruct level2 a 8 mystruct level2 b 9 我想对level1和level2中的元素进
  • oct2py 没有看到 OCTAVE_EXECUTABLE 环境变量 (Windows)

    所以 我尝试在 Windows 上使用 oct2py 如下所示 from oct2py import octave 这实际上是我重现错误所需的唯一代码 当我执行这个时 我得到OSError Octave Executable not fou
  • 使用 Octave 绘图时出现问题

    我刚刚开始使用 Octave 当我启动八度并尝试绘制某些内容时 绘图有效 但我多次重复收到以下警告 warning ft render unable to load appropriate font warning ft render in
  • Matlab / Octave中有没有自动挤压的机制

    对于 nD 数组 如果能够自动挤压以删除单维 那就太好了 有没有一种我不知道的方法可以做到这一点 这对于聚合函数 例如总和 平均值等 特别有用 因为您总是期望得到维度较少的结果 这是一个简单的例子 gt gt A ones 3 3 3 gt
  • 将 Octave 转换为使用 CuBLAS

    我想将 Octave 转换为使用 CuBLAS 进行矩阵乘法 该视频似乎表明这就像输入 28 个字符一样简单 使用 CUDA 库加速应用程序 http youtu be P2Ew4Ljyi6Y t 1m59s 实际上 情况比这更复杂一些 有
  • 将 MATLAB 文件转换为 Octave

    我有一系列为 MATLAB 编写的实验 但最近我们尝试通过 Octave 来运行它们 我意识到它们大多是兼容的 但我遇到了一些问题 而且我发现的在线常见问题解答或说明都没有解决这些问题 这有点复杂 因为有多个 m 文件相互作用 不过 现在我
  • 如何检查变量是否在 Octave 中定义?

    当编写加载数据的脚本时 每次等待它加载都是浪费时间 如何检查变量是否已定义 您可以使用existOctave 中的函数来完成这项工作 它可用于检查给定名称作为变量 内置函数 文件或目录是否存在 在您的情况下 要检查变量是否存在 您可以使用如
  • Octave 中的 1-of-K 编码

    我正在尝试在 Octave 中获取整数向量的二进制 K 编码 我有一个向量y say y 1 2 3 1 3 我想要一个矩阵 Y 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 我可以手动构造一个 K 矩阵 Y Y Y y 1
  • Octave并行计算

    我在网上找到了一些资料 表明 Octave 有一些工具可以并行化算法 但找不到任何细节或如何获取和使用它们 对此的任何帮助 见解都会很棒 http octave sourceforge net parallel http octave so
  • 使用 fft 和 ifft 更改频率而不使用整数

    我知道我可以通过改变变量来改变整数频率shift但我怎样才能改变频率使用带小数位的数字 例如 754 或 1 2345 or 67 456 如果我改变变量 shift 到一个非整数类似的数字5 1 我收到错误下标索引必须是小于 2 31 的
  • 如何生成x的前20次方?

    所以 我有 X 一个 300 1 向量 我想要 1 X X X X X X X X X 300 20 矩阵 我该怎么做 X 2 1 X X X X X X ans 2 4 8 1 1 1 这可行 但我无法面对将整个内容打出来 我肯定不需要写
  • fft 和小波

    我可以使用 fft 获取加载的 1 秒音频文件的频率 相位和幅度 并重新创建它 我现在想做的是找出每个频率在 1 秒音频文件中的开始位置和结束位置 并将数据放入数组中 示例 100hz 从 0 23 秒到 0 34 秒开始 104 34hz
  • MATLAB 求最大值一个结构体的

    我试图找到结构的最大值但是max tracks matrix 不起作用 它给我以下错误 使用 horzcat 时出错 CAT 论证维度不一致 你有想法吗 这是我的结构的样子 tracks 1x110470 struct array with
  • 从 Octave 导出的图中具有透明背景

    我在 Win 10 下使用便携式 Octave 5 1 0 我的意思是写一个具有透明背景的 png 绘图 免责声明 这个问题与下面链接的两个问题类似 我选择了提出当前不同的问题 https meta stackoverflow com qu
  • Octave/Matlab:向向量添加新元素

    有一个向量x我必须添加一个元素 newElem 有什么区别吗 x end 1 newElem and x x newElem x end 1 newElem更稳健一些 x x newElem 仅当x是行向量 如果它是列向量x x newEl
  • matlab中的分箱

    我一直无法在 matlab 或 Octave 中找到函数来完成我想要的操作 我有一个两列的矩阵 m x 和 y 值 我知道我可以通过执行 m 1 或 m 2 来提取列 我想将其分成 可能 大小相等的较小矩阵 并绘制这些矩阵的平均值 换句话说
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • 单机Octave并行计算——包和示例

    我想在单台机器 而不是集群 上并行化 Octave 中的 for 循环 前段时间我问了一个关于Octave并行版本的问题Octave并行计算 https stackoverflow com questions 7047840 paralle

随机推荐