guohf
2013-05-24, 11:41
我有一240*4的矩阵,前两列正好是分布在一个半径为0.005圆周上的坐标点(如图1中的红*),我的目的是将前两列经反三角或其他方式转换为对应的360度直线,然后以这条直线为x轴,分别得到矩阵的第三、四列的二维图,想得到如图2的结果,但我经反三角函数变化后(试过很多方法),得到的图很乱。请高手帮下忙,先谢谢了
3221
图1,前两列对应的图
3222
图2 x轴是由前两列转换而得的
下面是我的部分数据(整个数据在附件里)3220
2.1195130e-018 -5.0000004e-003 -5.8866244e+003 8.3838407e+003
-1.2927217e-004 -4.9983291e-003 -6.4644268e+003 8.4098488e+003
1.2927217e-004 -4.9983291e-003 -5.3442376e+003 8.2814140e+003
-2.5952412e-004 -4.9932608e-003 -7.0453113e+003 8.4341468e+003
2.5952412e-004 -4.9932608e-003 -4.9248484e+003 8.0371400e+003
-3.9040763e-004 -4.9847346e-003 -7.6547117e+003 8.4517707e+003
3.9040763e-004 -4.9847346e-003 -4.5412538e+003 7.8258028e+003
-5.2156451e-004 -4.9727228e-003 -8.2930520e+003 8.4763877e+003
5.2156451e-004 -4.9727228e-003 -4.1754575e+003 7.7050938e+003
-6.5263093e-004 -4.9572247e-003 -8.8750256e+003 8.4573361e+003
6.5263093e-004 -4.9572247e-003 -3.9336525e+003 7.7314030e+003
-7.8324275e-004 -4.9382723e-003 -9.3956711e+003 8.4560658e+003
7.8324275e-004 -4.9382723e-003 -3.7928207e+003 7.9660194e+003
-9.1303955e-004 -4.9159294e-003 -9.9061493e+003 8.4296295e+003
9.1303955e-004 -4.9159294e-003 -3.5791294e+003 8.0809199e+003
-1.0416699e-003 -4.8902892e-003 -1.0382426e+004 8.3558926e+003
1.0416699e-003 -4.8902892e-003 -3.2145386e+003 7.9438170e+003
-1.1687954e-003 -4.8614722e-003 -1.0782399e+004 8.2597157e+003
1.1687954e-003 -4.8614722e-003 -2.9140631e+003 7.8138520e+003
-1.2940953e-003 -4.8296293e-003 -1.1087138e+004 8.1446527e+003
1.2940953e-003 -4.8296293e-003 -2.7736140e+003 7.6369052e+003
我的程序:
clear;clc;
load z02ms.dat %数据名
x=z02ms(:,1);y=z02ms(:,2);r=abs(sqrt(x.^2+y.^2));
[m,n]=size(z02ms);
ang=[m,1];%ang是前两列转化对应角,也曾直接用“[ang,RHO] = cart2pol(z02ms(:,1),z02ms(:,2));”等转过
for i=1:m
if x(i,1)>0 && y(i,1)>0
ang(i,1)=asind(y(i,1)/r(i,1));
elseif x(i,1)<0 && y(i,1)>0
ang(i,1)=90-acosd(y(i,1)/r(i,1));
elseif x(i,1)<0 && y(i,1)<0
ang(i,1)=180-asind(y(i,1)/r(i,1));
else
ang(i,1)=270-acosd(y(i,1)/r(i,1));
end
end
me=z02ms(:,3);st=z02ms(:,4);
subplot 211, plot(ang,me);
xlabel('\it\theta\^o');ylabel('mean pressure');
title('mean pressure ');
grid on
subplot 212, plot(ang,st);
xlabel('\it\theta\^o');ylabel('Fluctuating pressure');
title('Fluctuating pressure rms');
grid on
3221
图1,前两列对应的图
3222
图2 x轴是由前两列转换而得的
下面是我的部分数据(整个数据在附件里)3220
2.1195130e-018 -5.0000004e-003 -5.8866244e+003 8.3838407e+003
-1.2927217e-004 -4.9983291e-003 -6.4644268e+003 8.4098488e+003
1.2927217e-004 -4.9983291e-003 -5.3442376e+003 8.2814140e+003
-2.5952412e-004 -4.9932608e-003 -7.0453113e+003 8.4341468e+003
2.5952412e-004 -4.9932608e-003 -4.9248484e+003 8.0371400e+003
-3.9040763e-004 -4.9847346e-003 -7.6547117e+003 8.4517707e+003
3.9040763e-004 -4.9847346e-003 -4.5412538e+003 7.8258028e+003
-5.2156451e-004 -4.9727228e-003 -8.2930520e+003 8.4763877e+003
5.2156451e-004 -4.9727228e-003 -4.1754575e+003 7.7050938e+003
-6.5263093e-004 -4.9572247e-003 -8.8750256e+003 8.4573361e+003
6.5263093e-004 -4.9572247e-003 -3.9336525e+003 7.7314030e+003
-7.8324275e-004 -4.9382723e-003 -9.3956711e+003 8.4560658e+003
7.8324275e-004 -4.9382723e-003 -3.7928207e+003 7.9660194e+003
-9.1303955e-004 -4.9159294e-003 -9.9061493e+003 8.4296295e+003
9.1303955e-004 -4.9159294e-003 -3.5791294e+003 8.0809199e+003
-1.0416699e-003 -4.8902892e-003 -1.0382426e+004 8.3558926e+003
1.0416699e-003 -4.8902892e-003 -3.2145386e+003 7.9438170e+003
-1.1687954e-003 -4.8614722e-003 -1.0782399e+004 8.2597157e+003
1.1687954e-003 -4.8614722e-003 -2.9140631e+003 7.8138520e+003
-1.2940953e-003 -4.8296293e-003 -1.1087138e+004 8.1446527e+003
1.2940953e-003 -4.8296293e-003 -2.7736140e+003 7.6369052e+003
我的程序:
clear;clc;
load z02ms.dat %数据名
x=z02ms(:,1);y=z02ms(:,2);r=abs(sqrt(x.^2+y.^2));
[m,n]=size(z02ms);
ang=[m,1];%ang是前两列转化对应角,也曾直接用“[ang,RHO] = cart2pol(z02ms(:,1),z02ms(:,2));”等转过
for i=1:m
if x(i,1)>0 && y(i,1)>0
ang(i,1)=asind(y(i,1)/r(i,1));
elseif x(i,1)<0 && y(i,1)>0
ang(i,1)=90-acosd(y(i,1)/r(i,1));
elseif x(i,1)<0 && y(i,1)<0
ang(i,1)=180-asind(y(i,1)/r(i,1));
else
ang(i,1)=270-acosd(y(i,1)/r(i,1));
end
end
me=z02ms(:,3);st=z02ms(:,4);
subplot 211, plot(ang,me);
xlabel('\it\theta\^o');ylabel('mean pressure');
title('mean pressure ');
grid on
subplot 212, plot(ang,st);
xlabel('\it\theta\^o');ylabel('Fluctuating pressure');
title('Fluctuating pressure rms');
grid on