求助,Matlab 上怎么设定X轴的坐标?
折腾一个早上了,也没弄出来,只好来麻烦各位了!谢谢!这是一幅物理上光学部分经常见到的衍射光强分布图,
现在老板要求在X轴上根据衍射光强的级数进行标定,
即,根据峰值的不同,在X轴上分别标定:-5级,-4级,-3级,-2级,-1级,0级,1级,2级,3级,4级,5级……等条纹
而不是现在采用弧度表示,
现在想请问各位,在Matlab里该如何实现?
最好能用程序代码实现 ,因为老板有点……呵呵
谢谢!
拜托! x = 1:5;
set(gca,'XTick',x);
set(gca,'XTickLabel',num2str(x)); 绘出图形后直接在图形窗口界面更改就可以了啊! 给个例子给你:
>> x=1:6;
>> y=35*rand(1,6);
>> bar(x,y)
>> xlabel('月份')
>> ylabel('平均温度(^{o}C)') %%% 摄氏度符号℃输入!!!!
>> set(gca,'xticklabel',{'一月','二月','三月','四月','五月','六月',}) 首先谢谢各位的帮忙!
to eigth 兄: 你说的办法貌似可行,但有点问题就是,X轴标的级数,即,-5,-4,-3,……,3,4,5无法和相应的峰值对齐,标称有一定的误差,
to aehrmanner 兄:你说的办法,我试过,但没成功,其一,原有的坐标不好去掉,其二无法准确标定,不知能否详细点!谢谢!
to lb107 兄: 多谢提供这段代码,这和eight 兄提供的建议比较接近,但还是无法准确标定, 下附相应的程序代码,供各位参考,希望大家指点一二,谢谢!
%光栅衍射函数
clear all;
clc;
d = 4.5;
b = 1.5;
N = 5;
lamga = 0.8;
m = 1;
for i=-0.5:0.001:0.5
seta = i*pi;
temp_1 = (sinc(b*sin(seta)/lamga))^2;
temp_2 = (N*sinc(N*d*sin(seta)/lamga)/sinc(d*sin(seta)/lamga))^2;
I(m) = temp_1*temp_2;
m = m+1;
end
x = -0.5:0.001:0.5;
figure
plot(x*pi,I);
x=-5:5;
set(gca,'XTick',0);
set(gca,'XTickLabel',num2str(x,0.03));
%set(gca,'XTickLabel',{'-3','-2','-1','0','1','2','3'});这一行用于替换紧接着的上面三行以实现 lb107兄的建议
axis tight
title('光栅衍射分布图');
xlabel('单位为弧度')
[ 本帖最后由 duguyun 于 2006-10-10 22:34 编辑 ] X轴标的级数,即,-5,-4,-3,……,3,4,5无法和相应的峰值对齐,标称有一定的误差,
和相应的峰值对齐,这样标出的是不等间距的,好象可以在峰值下面写个数字,用text来实现,在之前要做的工作是把峰值点的横坐标找到
只是说一个思路,没仔细想,这几天忙ing
页:
[1]