Excel MatlabXLSREAD-这是一个样式很差的代码吗?

Excel MatlabXLSREAD-这是一个样式很差的代码吗?,excel,matlab,Excel,Matlab,我正在尝试读取一个Excel电子表格,其中第一列有键,接下来的列有值,并将键作为字段名,值作为值。我提出了下面的代码,但感觉不太像matlab-y——我觉得应该有一种方法可以在O(1)时间而不是O(n)时间内完成这项工作 更合适的方法是什么?我在家工作,那里我只有八度音阶,因此importdata不属于解决方案的范畴。在这种情况下,您可以使用“struct”命令使用各种字段名和值构造结构。最困难的部分通常是以正确的顺序获取单元格输入。。。幸运的是,xlsread可以(几乎)满足您的需求。我现在假

我正在尝试读取一个Excel电子表格,其中第一列有键,接下来的列有值,并将键作为字段名,值作为值。我提出了下面的代码,但感觉不太像matlab-y——我觉得应该有一种方法可以在O(1)时间而不是O(n)时间内完成这项工作


更合适的方法是什么?我在家工作,那里我只有八度音阶,因此importdata不属于解决方案的范畴。

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

field1 field2 field3 1 2 3 会有用的。这就是细胞阵列扩展的魔力。请看“struct”的帮助和“cell”的帮助。这也很好:

最后一点,Brian L在上面是正确的;一个MATLAB单行程序看起来很酷,但它不能“保证”比相应的for循环快

鉴于99%的时间阅读您的代码的人无法理解上面的示例,您的for循环示例很好。

请注意O(n)时间:仅仅因为Matlab中的某些程序可以在不使用
for
的情况下编写,而
并不意味着这些程序具有O(1)的潜在复杂性。
field1  field2  field3
1   2   3
[~,~,raw] = xlsread('C:\...\xlsx');
myStruct = struct(raw{:});