您好我正在尝试编写一个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
答案 0 :(得分:0)
对不起我,但我明白了。问题是当使用get函数获取值时,它创建了一个单元格数组。
http://www.mathworks.com/help/matlab/cell-arrays.html
如果要将数据转换为普通数组,可以使用cell2mat()函数