跳到主要内容

函数参数定义及引用

本节介绍 FuncStudio 函数参数的定义及引用功能。

主要用途

用于配置函数的外部接口,并且通过运行标签页的参数方案来更改算法内核的输入。

参数定义及引用流程

定义函数参数列表

用户可在 FuncStudio 接口标签页的参数列表内根据需求自定义参数名、参数数据类型、参数范围等。

参数列表被分为参数组-参数两个层级,两个层级为包含关系,即一个函数可含有若干参数组,每个参数组可含有若干参数。

XStudio 提供了统一的参数列表配置方法,支持实数、整数、文本、布尔、选择、多选、表格以及虚拟引脚 9 种类型参数的定义。

每种类型参数的定义详见 参数列表定义

配置参数方案

定义好的参数列表后,运行标签页方案下的默认参数方案里面会将参数列表显示出来,用户可以选择或添加参数方案,通过修改当前方案下的参数值,更改函数内核的输入

配置参数列表
配置参数列表
注意
  • 当用户修改参数列表后(包括类型和默认值),已有的参数方案不会更新,需要手动修改;

  • 添加新的参数方案会更新。

函数内核中引用参数方案

配置好参数方案后,用户可在函数内核中利用 FuncStudio SDK 引用当前参数方案作为内核输入量进行计算。

不同语言编写的内核引用参数方案的格式有所区别:

对于 Python 内核通过 args.键 的接口获取。

import cloudpss  #导入安装好的CloudPSS-SDK
if __name__ == '__main__':
job = cloudpss.currentJob() #获取函数在当前参数方案下的计算任务实例
a = job.args.a #利用 SDK 提供的 args 方法获取键为 a 的参数在当前方案下的值
b = job.args.b #获取键为 b 在当前参数方案下的值

不同类型的参数引用方式不同:

对于布尔、选择和多选等选项类型的参数,直接通过键名引用到的是每个选项的键

布尔类型的参数通过 args.Switch 获取的是选项的键,1 或者 0

布尔参数值得获取
布尔参数值得获取

选择类型的参数通过 args.Control 获取的是选项的键,1 或者 2

选项参数值得获取
选项参数值得获取

多选类型的参数通过 args.MultiSelect 获取的是选项的键,比如,多选“选项 1”、“选项 2”、“选项 3” 获取的值就是 ['1','2','3']

多选参数值得获取
多选参数值得获取

常见问题

对于 Matlab 内核中数组/矩阵/等类型输入参数该如何定义和引用?
  • 首先,在参数列表中将数组/矩阵/等类型输入参数均定义为字符串类型;

  • 然后,在参数方案中该参数的值内输入数组/矩阵,例如 [1,2,3,4,5,6;6,5,4,3,2,1] 的矩阵;

  • 最后,在 Matlab 内核中通过 args{'键'} 获取数组或矩阵字符串 '[1,2,3,4,5,6;6,5,4,3,2,1]',进一步可在 Matlab 里用使用 eval 方法。例如:a = eval('[1,2,3,4,5,6;6,5,4,3,2,1]') 转换成 2*6 的 double 型矩阵数据参与计算。

数组/矩阵/类型参数定义及引用
数组/矩阵/类型参数定义及引用
表格数据导入 csv 文件失败,该如何解决?

首先得保证 csv 文件格式和表格格式一致,然后需要在 csv 文件中添加首行作为每一列的编号。

可导入表格的 csv 文件
可导入表格的 csv 文件