gpt4 book ai didi

matlab - 如何将 Matlab 结构解压缩为函数参数?

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:28 25 4
gpt4 key购买 nike

使用 this question 的组合和 this Mathworks help thing on comma sep. lists我想出了这种丑陋的方法来使我的格式化参数更漂亮:

formatting{1,1} = 'color';      formatting{2,1} = 'black';
formatting{1,2} = 'fontweight'; formatting{2,2} = 'bold';
formatting{1,3} = 'fontsize'; formatting{2,3} = 24;

xlabel('Distance', formatting{:});

但它仍然有点难看...有没有一种方法可以将一个结构解压缩为一堆参数,就像一个 Python 字典到 **kwargs

例如,如果我有(恕我直言)更清洁的结构:

formatting = struct()
formatting.color = 'black';
formatting.fontweight = 'bold';
formatting.fontsize = 24;

我能以某种方式传递它吗?如果我直接尝试 (xlabel('blah', formatting)formatting{:},它会说“参数数量错误”。

最佳答案

你们很亲近。只需切换到一维元胞数组即可。

formatting = {'Color', 'Red', 'LineWidth', 10};
figure
plot(rand(1,10), formatting{:})

如果你真的想使用结构来格式化参数,你可以将它解压到元胞数组中并像上面那样使用它。

formattingStruct = struct();
formattingStruct.color = 'black';
formattingStruct.fontweight = 'bold';
formattingStruct.fontsize = 24;

fn = fieldnames(formattingStruct);
formattingCell = {};
for i = 1:length(fn)
formattingCell = {formattingCell{:}, fn{i}, formattingStruct.(fn{i})};
end

plot(rand(1,10), formatting{:})

将结构解包成一个单独的小函数可能是个好主意,这样您就可以轻松地重用它。

关于matlab - 如何将 Matlab 结构解压缩为函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com