使用actxserver从excel获得的值在MATLAB中创建绘图时出错。

时间:2015-06-16 14:37:29

标签: matlab matlab-figure

您好我正在尝试编写一个MATLAB脚本,该脚本读取多个Excel文件并从工作表中收集值。通过一些研究,我发现使用actxserver是获取数据的一种非常快捷的方法。这些值存储在out和out1变量中,通过使用vertcat函数,我创建了一个包含我需要存储的所有300,000个值的数组。这似乎有效。然而,当我尝试使用绘图在简单的x对y图中绘制值时,我得到一个错误,指出:

使用绘图时出错 没有足够的输入参数。

开幕式出错(第36行) 情节(OUT0,OUT1)

以下是代码。我确信这是一个简单的修复,但我看了,没有发现任何有用的东西。

  clc;


filename = 'C:\Users\Public\Documents\DASYLab\13.0.0\eng\data\TRIAL\';

D = dir([filename, '\*.csv']);
Num = length(D(not([D.isdir])));

f = Num;
ex = actxserver('excel.application');

o = 0;
k = 0;

for i=1:f



 if(i<=10)
 ex.Workbooks.Open([filename,'mydataIII_0',num2str(i-1)]);
 else 
 ex.Workbooks.Open([filename,'mydataIII_',num2str(i-1)]);
 end

  out0 = get(ex.Range('A8:A40967'),'Value');
  out = vertcat(o,out0);
  o = out;   


  out1 = get(ex.Range('C8:C40967'),'Value');
  outone = vertcat(k,out1);
  k = outone;

end

figure;
plot(out0,out1)

ex.Quit

1 个答案:

答案 0 :(得分:0)

对不起我,但我明白了。问题是当使用get函数获取值时,它创建了一个单元格数组。

http://www.mathworks.com/help/matlab/cell-arrays.html

如果要将数据转换为普通数组,可以使用cell2mat()函数