我在我的电脑上安装了Matlab r2010a。
如果使用matlab中的xlsread函数并行读取数据时如何显示等待条图中的更新进度?
非常感谢您的回答。
(编辑)
我的意思是,当 xlsread 逐个加载数据时,您可以在等待栏中看到加载进度。
有什么办法吗?
PD:我只想加载一个* .xls文件中的数据
答案 0 :(得分:0)
有几种选择:
.mex
文件并计算出不同的MATLAB版本的无证内存表示(可能非常困难,但我相信可以使用一些调试器)。myxlsread.m
,xlsread.m
和xlsreadCOM.m
作为出发点创建自己的xlsreadXLSX.m
。waitbar
命令之间的循环中更新xlsread
,那就非常容易了。 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.m
,xlsread.m
和xlsreadCOM.m
为例或直接修改他们添加xlsreadXLSX.m
更新函数调用,如果在您的情况下版权问题不是问题(例如,您不分发代码或当地法律允许)。我认为修改或重新创建waitbar
是最可行的方法。
myxlsread.m
循环解决方案中的3.
:
但是,如果您只想在单独的xlsread
函数调用之间更新waitbar
,那么这根本不是问题,它将类似于:
xlsread