xlsread和waitbar MATLAB

时间:2012-06-17 05:49:13

标签: matlab progress-bar xls

我在我的电脑上安装了Matlab r2010a。

如果使用matlab中的xlsread函数并行读取数据时如何显示等待条图中的更新进度?

非常感谢您的回答。

(编辑)

我的意思是,当 xlsread 逐个加载数据时,您可以在等待栏中看到加载进度。

有什么办法吗?

PD:我只想加载一个* .xls文件中的数据

1 个答案:

答案 0 :(得分:0)

有几种选择:

  1. 一个困难的选择:创建一个.mex文件并计算出不同的MATLAB版本的无证内存表示(可能非常困难,但我相信可以使用一些调试器)。
  2. 更简单的方法:使用myxlsread.mxlsread.mxlsreadCOM.m作为出发点创建自己的xlsreadXLSX.m
  3. 如果您只需要在连续waitbar命令之间的循环中更新xlsread,那就非常容易了。
  4. 1. .mex文件解决方案: 如果您想显示单个xlsread函数调用的进度,我相信事情会变得非常复杂。首先,您需要有两个线程,为此您需要使用.mex个文件或其他方法。第二个问题是AFAIK xlsread没有发出任何进展信号,这意味着你的.mex函数需要以某种方式获取变量的内存地址(单元格数组或矩阵等)。 )被调用的xlsread函数。如果这是你想要的,那么这个文档可能会有用:http://undocumentedmatlab.com/blog/matlabs-internal-memory-representation/请注意,MATLAB的内部存储器表示完全没有文档,并且可能会随着不同的MATLAB版本的不同而改变,因此对于单个{{1}这将是太多的工作。

    waitbar 2.解决方案: 好消息是myxlsread.m不是内置的(至少在MATLAB R2012a中没有),因此您可以读取代码并使用MATLAB调试器进行跟踪而不会出现问题。因为它不是内置的,所以可以选择创建自己的自定义xlsread,以myxlsread.mxlsread.mxlsreadCOM.m为例或直接修改他们添加xlsreadXLSX.m更新函数调用,如果在您的情况下版权问题不是问题(例如,您不分发代码或当地法律允许)。我认为修改或重新创建waitbar是最可行的方法。

    myxlsread.m循环解决方案中的3.: 但是,如果您只想在单独的xlsread函数调用之间更新waitbar,那么这根本不是问题,它将类似于:

    xlsread