Я вызываю скрипт python из matlab. Сценарий питона нужны 3 массивов в качестве входных аргументов:Вызов скрипта Python из Matlab с аргументами
import sys
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_aspect('equal')
X = np.array(float(sys.argv[1]), dtype =np. float32)
Y = np.array(float(sys.argv[2]), dtype =np. float32)
Z = np.array(float(sys.argv[3]), dtype =np. float32)
scat = ax.scatter(X, Y, Z)
я называю сценарий Python из Matlab, как это:
!"MYPATH\python.exe" test3.py dX dY dZ
В Matlab, dX
, dY
и dZ
все 1x500 типа массива. Однако, я получаю следующее сообщение об ошибке:
ValueError: could not convert string to float: dX
Похоже вызова питон скрипт не оценивает dX
массив и принимает аргумент в виде строки. Как я могу это исправить?
Посмотрите, как многообещающее решение , однако я получаю следующую ошибку: ??? Ошибка при использовании ==> system Слишком много входных аргументов. –
Если я попробую 'system (['" MYPATH \ python.exe ",' test3.py '], filename);', я получаю следующую ошибку: 'Error using ==> system Unrecognized option: tempname. txt' –
Я изменил код, чтобы правильно построить команду. Извините, это еще один пример несогласованности Matlab. – chthonicdaemon