CODE:
% XRD,X射线衍射
% function:绘制excel中的多对数据
% version:7.11.0.584 (R2010b)
% wyw
% 20120419
% 修改:
% 1.将压力值的下限修改为1;
% 重要说明
% 表格中数据的位置与楼主上传的要一致,否则程序运行错误;
% 1.为了方便提取数据,表格中压力的单位要去掉,只保留数值;
% 2.表格中残缺的数据用0表示,而不是--;
% 祝你顺利
% 文件存放的路径,需要手动修改,注意最后的反斜杠
folder_name = 'E:\MyFile\Matlab\论坛帮助\X射线衍射\';
file_name = 'XRDpn.xls';
number_of_txt = 12; %txt文件的个数,即曲线的条数
% 提取压力数值,用来制作colormap
num = xlsread([folder_name, file_name], 'A1:X1');
pressure = zeros(number_of_txt, 1);
for ii = 1 : 2 : number_of_txt*2 - 1
pressure((ii+1)/2) = num(ii);
end
% matlab中的下标只能是正整数或逻辑数组
% 通过下面这条语句将小于或等于0的压力值取为1
pressure(pressure<=1) = 1;
% 提取绘图数据,绘制曲线
data = xlsread([folder_name, file_name], 'A4:X746');
% 绘图
figure(1)
hold on
cmap = colormap(jet(36)); %提取其中的36种颜色
for ii = 1 : number_of_txt
x = data(:, ii*2-1);
y = data(:, ii*2);
% 通过关系运算去除表格中的零点
% 因为压力值的下限已经设置为1,所以可以用round取整
plot(x(x~=0), y(y~=0), 'Color', cmap(round(pressure(ii)), :));
clear x y; %考虑到数据的维数可能不一致
end
hold off
colorbar; %显示色彩条
set(gca, 'XLim', [10, 20]); %设置坐标范围