从MATLAB GUI中特定范围的xlsx数据导入



我在MATLAB m.file中有一个代码部分,它将电力消耗数据导入xlsx文件中。然后,该程序将提示用户输入电网费用,进行必要的计算,然后绘制条形图,显示每月和每年的消耗成本。在这部分代码中获得的变量将用于m.file 的其他部分

然后,我使用GUIDE为这个m.file创建了一个多页GUI,但作为MATLAB的新用户,我在GUI编码方面很吃力。尤其是导入文件,因为我希望用户能够查看和选择导入范围,而不是整个文件。我正在努力解决的另一件事是使来自该GUI的数据可用于所有其他GUI页面。

GUI有两个面板。1面板包含4个编辑文本框,供用户输入电网费用,以及一个"输入"按钮。另一个面板包含一个轴,该轴将用于显示条形图,以及13个静态文本,该文本将在计算完成后显示月度和年度成本的值。我希望只有在用户用必要的网格费用填充编辑框,然后单击"输入"按钮后,轴和13个静态文本才能显示条形图和成本数据。

我见过一些在GUI中导入excel文件的例子,但我看到的那些完全导入文件,或者对于不了解GUI编码的人来说太难了。有简单的解决方案吗?

在Matlab中,xlsread函数有一个参数,您可以在其中指定要读入的表和范围。http://www.mathworks.com/help/matlab/ref/xlsread.html

对于范围参数,您可以像在excel 中一样指定范围

前任。

xlsread('filename', 'A1:B10')

以读取前10x2个单元。

但是,我建议您在Matlab中使用Microsoft的VBA语言来导入数据,具体取决于excel文件的大小。我发现这种方法对更大的数据集更有效。

如果你感兴趣,这里有一个如何使用它的例子:

excelObj = actxserver('Excel.Application');
fileObj = excelObj.Workbooks.Open(filename);
sheetObj = fileObj.Worksheets.get('Item', sheetnumber);
%Read in ranges the same way as xlsread!
indata = sheetObj.Range('A1:B10').Value;

我对使用指南构建GUI没有太多经验,但我认为您需要为希望与用户交互的组件添加回调函数。在这些回调函数中,您可以设置一个布尔值,指示用户是否已完成启动计算所需的操作。

祝你好运!

在gui中使用编辑文本,用户可以在其中指定数据范围,然后u可以使用xlsread("文件名",cell_array),(其中cell数组包含之前指定的编辑文本的字符串属性)在另一个按钮的回调中,您必须设计该按钮以在用户输入范围后执行。如果您使用GUIDE或通过程序进行创建,则可以完成此操作。请注意我的英语有点破旧

最新更新