小编Sue*_*ver的帖子

如何在 Windows 上安装 oct2py?

我想在 python 中安装 oct2py。我正在使用 Windows 8.1

我使用了命令 easy_install oct2py 并使用标准 exe 文件安装了八度音程。现在根据 安装指南,我应该添加八度音程路径。

setx PATH "%PATH%;<path-to-octave-bin-dir>
Run Code Online (Sandbox Code Playgroud)

我不明白这个命令。我试图将octave.exe文件所在的路径添加到环境变量中。

但是当我尝试导入 oct2py 时出现错误。

>>> import oct2py


Please install GNU Octave and put it in your path

>>> 
Run Code Online (Sandbox Code Playgroud)

任何人都可以请解释我究竟如何设置路径?
我应该在终端上运行的命令示例非常有用。谢谢

编辑:我试过了

setx PATH "%PATH%;C:\Software\Octave-3.6.4\bin"
Run Code Online (Sandbox Code Playgroud)

但我收到一条奇怪的消息:

WARNINGS: The data being saved is truncated to 1024 characters
SUCCESS: Specified value was saved
Run Code Online (Sandbox Code Playgroud)

python octave oct2py

5
推荐指数
1
解决办法
3133
查看次数

如何将 Octave 添加到我的 PATH 以使用 oct2py?

最终编辑:添加

export PATH=/usr/local/octave/3.8.0/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

到我的路径确实足以使 oct2py 正常工作(只要我在更改后重新启动终端)。哈扎!

---- 原帖----

我已经成功地 pip 安装了 oct2py 和 pexpect,但是在尝试导入和使用 oct2py 时遇到了问题。首先,在尝试以下操作时:

import oct2py
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Please install GNU Octave and put it in your path
Run Code Online (Sandbox Code Playgroud)

所以我将以下行添加到 ~/usr/.bash_profile

export PATH=/usr/local/octave-3.8.0/bin:${PATH}
export PATH=/usr/local/octave-3.8.0/sbin:${PATH}
Run Code Online (Sandbox Code Playgroud)

现在我可以在 python 中成功导入 oct2py 模块。但是,当尝试使用以下方法对其进行初始化时:

oc = oct2py.Oct2Py()
Run Code Online (Sandbox Code Playgroud)

我收到与以前相同的错误消息。我还需要在 PATH 中添加什么来告诉 python 如何实际运行 Octave?也许还有另一个我不知道的问题?

编辑:看来最初的“import oct2py”仍然无法识别路径,但是如果我第二次运行该行,它不会再次引发相同的错误消息。所以大概我已经添加的 PATH 行实际上并没有做任何事情。

python macos path octave oct2py

5
推荐指数
1
解决办法
3504
查看次数

如何在matplotlib中获取条形图/堆积条形图上的标签?

我在 PyQt Canvas 中嵌入了一个非常简单的堆叠 matplotlib 条形图。我试图根据点击获取条形区域(矩形)的相应标签。但是当我尝试从事件中打印信息时,我总是会得到_nolegend_。理想情况下,我希望在代码中附加的栏上看到相应的标签。

例如,当您单击灰色条时,它应该打印a2

import sys
import matplotlib.pyplot as plt

from PyQt4 import QtGui
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas


def on_pick(event):
    print event.artist.get_label()

def main():

    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    w.resize(640, 480)
    w.setWindowTitle('Pick Test')

    fig = Figure((10.0, 5.0), dpi=100)
    canvas = FigureCanvas(fig)
    canvas.setParent(w)

    axes = fig.add_subplot(111)

    # bind the pick event for canvas
    fig.canvas.mpl_connect('pick_event', on_pick)

    p1 = axes.bar(1,6,picker=2,label='a1')
    p2 = axes.bar(1,2, bottom=6,color='gray',picker=1,label='a2')

    axes.set_ylim(0,10)
    axes.set_xlim(0,5)

    w.show()

    sys.exit(app.exec_()) …
Run Code Online (Sandbox Code Playgroud)

python plot pyqt matplotlib bar-chart

5
推荐指数
1
解决办法
1787
查看次数

查找MATLAB mlint警告ID的类别

我在MATLAB中使用checkcode函数给我一个提供的文件名中的所有错误消息的结构,以及它们的McCabe复杂性和与该错误相关的ID.即;

info = checkcode(fileName, '-cyc','-id');
Run Code Online (Sandbox Code Playgroud)

在MATLAB的首选项中,列出了所有可能的错误,并将它们分为几类.如"美学与可读性","语法错误","气馁函数用法"等.

有没有办法使用从上面的代码行获得的错误ID访问这些类别?

debugging matlab

5
推荐指数
1
解决办法
293
查看次数

Python Plotly - 将Y轴对齐Scatter和Bar

我正在尝试使用Scatter和Graph元素创建一个图形图.这一切都很顺利,但有一个问题 - 两个Y轴不对齐0.

我尝试过使用不同的属性,例如'mirror'和tick0,我也尝试按照plotly的网站上的例子,但它主要是多个y轴,具有相同的图形类型.

我该怎么做才能解决这个问题?

图的图像

import utils
import pandas as pd
import plotly.plotly as py
import plotly.graph_objs as go
import plotly




pd_data ['dt'] = ... dates
pd_data['price'] = ... prices
pd_data['car'] = ... cars

price = go.Scatter(
    x = pd_data['dt'],
    y = pd_data['price'],
    mode = 'lines',
    name = 'Price',
    xaxis = 'x',
    yaxis='y1',     
    marker = dict(
        color = utils.prep_color_string('orange'),
    ),
    line = dict(
        width = utils.line_width,
    ),
)

car = go.Bar(
    x = pd_data['dt'],
    y = pd_data['car'],
    #mode = 'lines', …
Run Code Online (Sandbox Code Playgroud)

python plotly

5
推荐指数
1
解决办法
2687
查看次数

如何从八度音阶的文件中读取矩阵?

我正在尝试从 Octave 中的文件读取矩阵,但我找不到解决方案。输入文件是:

4
1 4 2 3
1 4 2 1
4 2 1 4
1 2 1 3
Run Code Online (Sandbox Code Playgroud)

其中 4 是行数和列数。我希望能够将这些信息存储在一个矩阵中,并且能够通过像a(2,3).

octave

5
推荐指数
2
解决办法
1万
查看次数

MATLAB:如何绘制具有不同比例和不同数据集的多个水平条形图?

我想绘制一个完全如下图所示的条形图.

在此输入图像描述

我无法做的是绘制2组数据,一组分别位于"0"的左侧,另一组分别位于右侧,每个数据在x轴上使用不同的比例.使用该函数barh有关于如何移动基线的说明,但在这种情况下,有两组具有不同比例的不同数据.

例如,我试图绘制以下数组:

left = [.1; .5; .4; .6; .3]; % Scale 0-1, grows leftwards
right = [24; 17; 41; 25; 34]; % Scale 0-35, grows rightwards
Run Code Online (Sandbox Code Playgroud)

有什么提示吗?

matlab plot bar-chart matlab-figure

5
推荐指数
1
解决办法
1179
查看次数

在八度音程中使用 varargin

我试图varargin在八度音程中使用,但似乎遇到了一些问题。这是我的代码:

into2.m

function  [result] = into2(x)
    result = x*2;
endfunction
Run Code Online (Sandbox Code Playgroud)

into3.m

function  [result] = into3(x)
    result = x*3;
endfunction
Run Code Online (Sandbox Code Playgroud)

calc.m

function  [result1] = calc(varargin, x)
    fn1 = varargin{1};
    fn2 = varargin{2};
    result1 = fn1(x) + fn2(x);
endfunction
Run Code Online (Sandbox Code Playgroud)

test1.m(主功能)

function  [] = test1()
    result= calc(@into2,@into3,2);
    disp(result);
endfunction
Run Code Online (Sandbox Code Playgroud)

test1()是主函数调用calc()并传递两个函数句柄和一个标量。我期望varargin应该有@into2,@into3并且x应该有2。然而,varargin@into2且 x 有@into3。我尝试更改顺序,但传递的两个函数不会进入一个参数;每个参数只有一个功能。我相信varargin应该有一个细胞,但似乎不起作用。我使用的是 Octave 4.2。(将MATLAB放入标签中,因为两者应该是相似的。)

matlab octave

5
推荐指数
1
解决办法
2114
查看次数

Oct2Py只返回第一个输出参数

我正在使用Oct2Py在我的Python代码中使用一些M文件.假设我有这个简单的Matlab函数:

function [a, b] = toto(c);
    a = c;
    b = c + 1;
end
Run Code Online (Sandbox Code Playgroud)

如果我在Octave中调用它会发生什么:

>> [x,y] = toto(3)
x = 3
y = 4
Run Code Online (Sandbox Code Playgroud)

现在如果我用Python调用它,使用oct2py:

from oct2py import octave
my_dir = "D:\\My_Dir"
octave.addpath(my_dir)
a,b = octave.toto(3)
Run Code Online (Sandbox Code Playgroud)

返回:

TypeError:'int'对象不可迭代

似乎octave.toto(n)只返回第一个值,当我期待两个......有人可以向我解释我应该做什么吗?谢谢

python matlab octave oct2py

5
推荐指数
1
解决办法
646
查看次数

matplotlib.figure.suptitle(),“sup”代表什么?

我知道这matplotlib.figure.suptitle()会为图形添加标题。

但是“sup”代表什么?

python matplotlib

5
推荐指数
1
解决办法
248
查看次数