Wednesday, April 13, 2016

Matlab: Call User-defined Python Functions

Introduction

Matlab可以调用Python自定义函数,但似乎这个函数还不太好用。这里介绍两种调用方式供参考。

Example

自定义的Python函数:
1
2
3
4
5
6
7
8
9
import sys

def squared(x):
    y = x * x
    return y

if __name__ == '__main__':
    x = float(sys.argv[1])
    sys.stdout.write(str(squared(x)))
第一种方式,应用python(这是M函数)函数,该函数来源请见参考文献[2]、[3]。
1
2
3
4
5
6
% Method One
result=python('sqd.py', '5');
disp('Method One');
fprintf('Variable result returns %s ', result);
fprintf('with the type of %s.\n', class(result));
disp('-------------------------------------');
第二种方式,应用system函数。
1
2
3
4
5
% Method Two
disp('Method Two');
[~, cmdout]=system('python sqd.py 5');
fprintf('Variable cmdout returns  %s ', cmdout);
fprintf('with the type of %s.\n', class(cmdout));
以上两种方式返回结果完全一致。Matlab调用方法选择任意一种方式,请仔细核对参数传递过程中的对应关系,正确对应才会返回理想结果。File.rar.

References

[3] python函数参考Adrian的回复.

No comments:

Post a Comment