我想在 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) 最终编辑:添加
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 行实际上并没有做任何事情。
我在 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) 我在MATLAB中使用checkcode函数给我一个提供的文件名中的所有错误消息的结构,以及它们的McCabe复杂性和与该错误相关的ID.即;
info = checkcode(fileName, '-cyc','-id');
Run Code Online (Sandbox Code Playgroud)
在MATLAB的首选项中,列出了所有可能的错误,并将它们分为几类.如"美学与可读性","语法错误","气馁函数用法"等.
有没有办法使用从上面的代码行获得的错误ID访问这些类别?
我正在尝试使用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) 我正在尝试从 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).
我想绘制一个完全如下图所示的条形图.
我无法做的是绘制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)
有什么提示吗?
我试图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放入标签中,因为两者应该是相似的。)
我正在使用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)只返回第一个值,当我期待两个......有人可以向我解释我应该做什么吗?谢谢
我知道这matplotlib.figure.suptitle()会为图形添加标题。
但是“sup”代表什么?