小编unn*_*eay的帖子

Python的argparse:如何使用关键字作为参数的名称

lambda 在Python中有一个关键字函数:

f = lambda x: x**2 + 2*x - 5
Run Code Online (Sandbox Code Playgroud)

如果我想将它用作变量名称怎么办?有逃脱序列还是其他方式?

你可能会问为什么我不使用其他名字.这是因为我想使用argparse:

parser = argparse.ArgumentParser("Calculate something with a quantity commonly called lambda.")
parser.add_argument("-l","--lambda",help="Defines the quantity called lambda", type=float)
args = parser.parse_args()

print args.lambda # syntax error!
Run Code Online (Sandbox Code Playgroud)

使用--help选项调用的脚本给出:

...
optional arguments
  -h, --help            show this help message and exit
  -l LAMBDA, --lambda LAMBDA
                        Defines the quantity called lambda
Run Code Online (Sandbox Code Playgroud)

因此,我想继续lambda作为变量名称.解决方案也可能是argparse相关的.

python lambda argparse

8
推荐指数
1
解决办法
1701
查看次数

在没有'fieldnames'的情况下迭代MATLAB中的结构

在MATLAB中迭代结构数据类型的常用方法是使用以下fieldnames()函数:

mystruct = struct('a',3,'b',5,'c',9);

fields = fieldnames(mystruct);

for i=1:numel(fields)
  mystruct.(fields{i});
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,这总是生成单元格数据类型,我想在SIMULINK中使用这种迭代来进行Matlab功能块,因为代码生成原因不允许单元格数据类型.

有没有办法在不同时使用单元数据类型的情况下迭代结构?

在Octave中有一种简洁的方法,在https://www.gnu.org/software/octave/doc/interpreter/Looping-Over-Structure-Elements.html中有解释.

for [val, key] = mystruct
  # do something esp. with 'key'
end
Run Code Online (Sandbox Code Playgroud)

有没有人在MATLAB中知道类似的方法?

matlab struct loops simulink matlab-coder

7
推荐指数
1
解决办法
2147
查看次数

标签 统计

argparse ×1

lambda ×1

loops ×1

matlab ×1

matlab-coder ×1

python ×1

simulink ×1

struct ×1