Matlab 如何在工作区中的不同表之间选择或加载

Matlab 如何在工作区中的不同表之间选择或加载,matlab,matlab-figure,Matlab,Matlab Figure,我有一个包含一些表格的*.mat文件。我想一个接一个地加载每个表格,然后绘制它,以便每个表格的图形在一个图形上更新。如果我不清楚,请告诉我…我认为此代码一定足够了,但当我要求它加载一个表格时,它不起作用。。。请指导我为什么以及如何改进代码? 多谢各位 filename = uigetfile load(filename) c=who('Hs*' ) % all the tables which starts with Hs cc=numel(c) % count the number of

我有一个包含一些表格的*.mat文件。我想一个接一个地加载每个表格,然后绘制它,以便每个表格的图形在一个图形上更新。如果我不清楚,请告诉我…我认为此代码一定足够了,但当我要求它加载一个表格时,它不起作用。。。请指导我为什么以及如何改进代码? 多谢各位

filename = uigetfile
load(filename)
c=who('Hs*' )   % all the tables which starts with Hs
cc=numel(c) % count the number of desired tables in MAT file which we loaded before
for i=1: cc
b=load(filename,c(i));
contour(b,60)
end

我可以在您的代码中看到至少三个错误

第一次加载后,您不会清除mat文件,因此所有表仍在内存中。 c是一个单元格数组,您应该使用括号对其进行索引,即c{i}。 默认情况下,地物中的每个图都会删除上一个图。书写图形;等等在for循环解决您的问题之前。
你能告诉我们Matlab是怎么说这个错误的吗?任何错误信息都比它不起作用要好得多。谢谢Jommy的回答,它知道b是结构,这就是为什么它不能绘制矩阵b我猜…:我需要b是一个27x45的单值而不是1x1的结构,我不知道应该做什么,你可以试试b=getfieldb,c{i};。是的,有帮助!非常感谢。但我只是在图形窗口中绘制了最后一个图,有没有一种方法可以让我看到图形窗口在每一步都在更新?你能告诉我如何从你之前提到的记忆中清除mat文件吗?许多thanksit正在一个图形中绘制所有表格!!!我需要它来清除先前的绘图并绘制新的绘图。我想让它像电影框架一样展示表格现在就开始写作;暂停1;在调用contour之后,应该会得到所需的结果。