关于优化这个在Matlab中加载多个文件的代码的提示


fname = dir('*sir');  
dayH = zeros(length(fname),1360,3600);
for i=1:length(fname)   
dayH(i,:,:) = loadsir(fname(i).name);
end  

fname = dir('*sir');  
dayH = cell(1,length(fname));  
for i=1:2  
dayH{i} = loadsir(fname(i).name); 
end

基本上它会加载我所有的文件。我有一个单独的.m文件,名为loadsir,用于加载那些专用文件。.sir文件的输出将是一个数组1360x3600。

现在代码崩溃了,说"不能显示超过524288个元素的变量摘要。"我想这是因为1360X3600=5000000关于?

将Serg的评论作为答案:

很可能您在loadsir的某个地方漏掉了分号(;)。然后,Matlab认为您想要打印输出,但由于元素数量太多,它不会这样做。

此外,为了防止这种事情在未来发生:

Matlab是一种解释性语言,有意义,无需编译。任何和所有代码都可以在键入时进行解析,这允许进行自动更正等操作。当然,这类东西已经包含在标准的Matlab中了。如果您还没有,请不时在Matlab自己的编辑器中进行代码编写。它通过编辑器中的右竖条警告您此类愚蠢的错误/错误(以及更多),包括但不限于。窗口右上角的小方块应始终为绿色。如果是橙色红色,则分别有需要改进或纠正的地方。

右侧竖条概述了文件中所有需要改进的行。如果某个地方出现了一个橙色/红色的小条,鼠标悬停会告诉你哪条线出了什么问题。单击它会将编辑器导航到该行,该行可能是橙色或红色的波浪形下划线。将鼠标悬停在该行上通常会给出有用的建议,<alt>+<enter>通常足以修复简单的错误。我发现它是在Matlab中开发大型应用程序时不可或缺的工具。

当然,您可以配置此工具("代码分析器",以前的"mlint")显示的错误/警告。有时,会有一个关于效率低下的警告,你根本无法解决。在行后面添加一个OK指令来抑制它(%#ok),但不要养成抑制任何"烦人"的东西的习惯,因为这当然会完全违背代码分析器的目的:)

最新更新