Python 当倍频程函数具有load param时,oct2py出错

Python 当倍频程函数具有load param时,oct2py出错,python,octave,oct2py,Python,Octave,Oct2py,我使用oct2py在python代码中调用一个倍频程函数。一切都应该正常,使用octave执行的octave函数可以正常工作,但当我使用python调用该函数时,出现以下错误: import os pathToExecutable = ('C:\\Octave\\Octave-5.2.0\\mingw64\\bin\\octave-cli.exe') os.environ['OCTAVE_EXECUTABLE'] = pathToExecutable from oct2py import o

我使用oct2py在python代码中调用一个倍频程函数。一切都应该正常,使用octave执行的octave函数可以正常工作,但当我使用python调用该函数时,出现以下错误:

import os

pathToExecutable = ('C:\\Octave\\Octave-5.2.0\\mingw64\\bin\\octave-cli.exe')
os.environ['OCTAVE_EXECUTABLE'] = pathToExecutable

from oct2py import octave
import pprint
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import loadmat

octave.addpath(octave.genpath('E:/funcs/software/octave_calls'))
octave.eval('MSPP')
Oct2Yerror:倍频程计算错误:错误:“AvgPwr”未定义 第22行第15列错误:从以下位置调用: 第22行第8列的MSPP

这一行中的倍频程代码是下一个:

Power=AvgPwr
当我从.mat文件导入AvgPower时使用

load params.mat %<--transcription corrected (before it was load(params.mat)

params.mat是在另一个倍频程文件中生成的,我加载了所有参数,其中包含变量AvgPwr,我认为倍频程代码一切都正确,因为我使用倍频程运行它时,它工作得很好。

您是否绝对确定访问的是正确的params.mat文件,您的octave实例从您认为的目录开始,并且AvgPwr变量确实存储在该.mat文件中?它已经被放在基本的八度工作区了?(
octave.eval('whos')
)。而且,有时候,;最好通过
octave.eval(“addpath…
路径)而不是
octave.addpath(…
one)进行操作。同时指出
load(params.mat)
尝试加载名为“params”的结构的mat字段中存储的字符串。您可能需要
load('params.mat'))
相反。是的:你能发布
MSPP.m
的前30行左右的内容吗,这样我们就可以了解更多关于这里发生的事情的上下文了?嗨!谢谢你的评论。我用更多的信息编辑了代码。我写加载(params.mat)时出错,实际上是加载params.mat。我尝试加载('params.mat'),但仍然是相同的错误。
warning off
close all;
clear all;
clc;

%% Load pameters

load params.mat
  
################################################################################

%% CW Laser

Plaser = 10^((AvgPwr-30)/10);         % Average Laser Power
emzm = 1.0;