24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2889  |  回复: 21

wangyuewu08

木虫 (著名写手)

★ ★
臭水沟: 金币+2, 谢谢交流~~ 2012-04-20 09:04:50
CODE:
%   XRD,X射线衍射
%   function:绘制excel中的多对数据
%   version:7.11.0.584 (R2010b)
%   wyw
%   20120418

%   重要说明
%   表格中数据的位置与楼主上传的要一致,否则程序运行错误;
%   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
%   提取绘图数据,绘制曲线
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);
    %   通过关系运算去除表格中的零点
    %   colormap中需提供行数,所以要通过ceil取整,因为最小数是0.05只能够向上取整
    plot(x(x~=0), y(y~=0), 'Color', cmap(ceil(pressure(ii)), :));
    clear x y;  %考虑到数据的维数可能不一致
end
hold off
colorbar;   %显示色彩条
set(gca, 'XLim', [10, 20]); %设置坐标范围

运行结果如下图:

效果还不错,比楼主帖子里粘的那张图要好

往事并不如烟
11楼2012-04-18 19:35:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)


臭水沟: 金币+1, 谢谢交流~~ 2012-04-20 09:04:56
修改之后的excel,以后的excel都按这种格式修改。
去掉压力单位值,将缺失的数据设置为0。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : XRDpn.xls
  • 2012-04-18 19:36:43, 343.5 K
往事并不如烟
12楼2012-04-18 19:37:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
13楼2012-04-18 23:46:52
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

luoheng27

木虫 (小有名气)


臭水沟: 金币+1, 谢谢交流~~ 2012-04-19 09:00:05
引用回帖:
8楼: Originally posted by wangyongyong at 2012-04-18 17:52:09:
非常感谢你百忙之中的解答,但是还有一个问题想咨询你,就是我可不可以吧所有的txt的数据,放在一个excel里面,直接画图,因为我每个样品可能是十几个压力下的数据,有十几个txt。
http://muchong.com/bbs/viewth ...

把数据放入excel文件里,然后从matlab-import这个excel文件,然后画图,至于限定坐标轴范围为:
axis([10 20 y的最小值  y的最大值]);
14楼2012-04-19 08:10:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
15楼2012-04-19 08:29:31
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

wangyuewu08

木虫 (著名写手)

引用回帖:
15楼: Originally posted by wangyongyong at 2012-04-19 08:29:31:
我在运行的时候,怎么提示下面的错误信息啊,

??? Subscript indices must either be real positive integers or logicals.

Error in ==> XRD2 at 34
    plot(x(x~=0), y(y~=0), 'Color', cmap(ceil( ...

你的压力值有小于0的吗?有的话还得处理一下
往事并不如烟
16楼2012-04-19 08:33:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)


臭水沟: 金币+1, 谢谢交流~~ 2012-04-20 09:05:07
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]); %设置坐标范围

往事并不如烟
17楼2012-04-19 09:00:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
18楼2012-04-19 10:26:03
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

wangyuewu08

木虫 (著名写手)

引用回帖:
18楼: Originally posted by wangyongyong at 2012-04-19 10:26:03:
没有小于0的,我都按照你的路径建立了相应的目录,把你修改后的excel考进去,运行的时候,还是提示上面的错误信息,不清楚是什么原因,你画的图那么好看,我直接就运行不出来。谢谢!

把你的excel上传一下
往事并不如烟
19楼2012-04-19 10:31:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
20楼2012-04-19 10:53:02
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页
相关版块跳转 我要订阅楼主 wangyongyong 的主题更新
信息提示
请填处理意见