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

2024-09-27 00:22:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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')

Oct2PyError: Octave evaluation error: error: 'AvgPwr' undefined near line 22 column 15 error: called from: MSPP at line 22, column 8

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

Power=AvgPwr

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

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

编辑:

MSSP的第一行

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;

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


Tags: 函数代码fromimportosloaderrorparams

热门问题