gpt4 book ai didi

excel - Matlab XlsRead - 这是风格不佳的代码吗?

转载 作者:行者123 更新时间:2023-12-04 21:06:52 26 4
gpt4 key购买 nike

我正在尝试读取 Excel 电子表格,其中第一列具有键,以下列具有值到结构中,键作为字段名称,值作为值。我想出了以下代码,但感觉不是很matlab-y - 我觉得应该有一种方法可以在 O(1) 时间内完成此操作,而不是 O(n)。

[num,txt,~]=xlsread('whatever.xls','Rate');
txt=cell2mat(txt);
for i = 1:size(txt)
rates.(txt(i,:))=num(i,:)
end

有什么更合适的方法来解决这个问题?我在家里工作,我只有 Octave,所以 importdata 超出了解决方案的范围。

最佳答案

在这种情况下,您可以使用“struct”命令创建具有各种字段名称和值的结构。最困难的部分通常是以正确的顺序获取单元格输入......幸运的是,xlsread (几乎)为您提供所需的东西。我现在假设您的 excel 文件如下所示:

field1  field2  field31   2   3

If that's the case, then:

[~,~,raw] = xlsread('C:\...\xlsx');
myStruct = struct(raw{:});

将工作。这就是单元阵列扩展的魔力。查看“struct”的帮助和“cell”的帮助。这也很好:

http://blogs.mathworks.com/loren/2009/10/21/dealing-with-cells/

最后一点,Brian L 在上面是正确的; MATLAB one-liner 可能看起来很酷,但不能“保证”比相应的 for 循环更快。

鉴于阅读您的代码的人在 99% 的情况下都无法理解上面的示例,因此您的 for 循环示例就可以了。

关于excel - Matlab XlsRead - 这是风格不佳的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003170/

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