我从MATLAB调用Python程序并将数组传递给程序。我在MATLAB工作区写了以下几行:
% Let us assume some random array
num1 = ones(1,100);
% I am forced to pass parameters as string due to the MATLAB-Python interaction.
num2 = num2str(num1);
% The function is saved in a Python program called squared.py
z=python('squared.py',num2);
当num1
的大小很小(例如100)时,程序可以正常工作。但是,当它很大时,例如500000,MATLAB显示以下错误:
??? Error using ==> dos
The command is too long to execute.
Error in ==> python at 68
[status, result] = dos(pythonCmd);
有谁知道如何修复此错误?
答案 0 :(得分:8)
在Windows上,传递给dos
函数的命令限制为32768个字符。此限制来自lpCommandLine
参数对CreateProcess的Windows限制。
我认为Fredrik关于将数据写入文件并从Python读取数据的想法是您的最佳选择。