0
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 文件,称为加载这些专用文件。.sir 文件的输出将是一个 1360x3600 的数组。

现在该代码正在崩溃,说“无法显示超过 524288 个元素的变量摘要。” 我猜是因为 1360X3600 = 5,000,000 左右?

4

1 回答 1

2

将 Serg 的评论作为答案:

您很可能;loadsir. Matlab 然后认为您想要打印输出,由于元素数量众多,它不会这样做。

此外,为防止将来发生此类事情:

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

右侧的垂直条是文件中所有留有改进空间的行的概览。如果某处出现橙色/红色小条,鼠标悬停会告诉您哪条线出了什么问题。单击它会将编辑器导航到该行,该行可能带有橙色或红色的波浪下划线。将鼠标悬停在线上通常会提供有用的建议,并且<alt>+<enter>通常足以修复简单的错误。在 Matlab 中开发大型应用程序时,我发现它是不可或缺的工具。

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

于 2012-11-17T06:46:24.023 回答