任何人都可以帮我在Matlab中从Excel工作表中查找特定列吗?我的文件看起来有点像这样:
% First set of data
x y
1 2
2 4
3 6
4 8
5 10
6 12
7 14
8 16
9 18
10 20
% Second set of data
% Empty line
1 1.5
2 3
3 4.5
4 6
5 7.5
6 9
7 10.5
8 12
9 13.5
10 15
% Third set of data
% Empty line
1 0.5
2 1
3 1.5
4 2
5 2.5
6 3
7 3.5
8 4
9 4.5
10 5
我想让Matlab做的是找到: - 对于每组数据(单独),找到这些数据并绘制在同一图中。
所以我希望Matlab在空行后自动找到新的设置。我现在遇到的一个问题是,我为一个数据集使用了大约1500行,而下一个数据集则略小一些。所以我可以想象使用类似的东西:
x=xlsread('Filename.xlsx','A1:AN');
答案 0 :(得分:0)
您可以尝试这样做:
我假设所有数据集之间没有任何空行,而每组数据后面只有一行空行。
%// read all set of data
%// you might additionally add range if you want to avoid non-numeric data such as string
a = xlsread('Book1.xlsx');
%// add NaN values at the end if not already present
if ~isnan(a(end,1))
a(end+1,:)=nan;
end
%// detect NaN rows
idx2=find(isnan(a(:,1)));
%// detect start rows for each set of data
idx1=[1 idx2(1:end-1)+1];
%// find number of data sets
n=numel(idx1);
%// create corresponding cell array
out=cell(n,1);
%// put each set of data inside a cell
for k=1:n
out{k}=a(idx1(k):idx2(k)-1,:);
end
%// plot each set of data separately
%// using 'hold all' instead of 'hold on' gives different colors for each data set
hold all
cellfun(@(x) plot(x(:,1),x(:,2)),out);
hold off