Matlab图线旋转如图所示,图线是由一系列数据点连线而成,现在需要将图线开始的直线变成水平的,也就是旋转到开始点与横轴
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 21:39:44
Matlab图线旋转
如图所示,图线是由一系列数据点连线而成,现在需要将图线开始的直线变成水平的,也就是旋转到开始点与横轴重合.如何操作,
e=b(:,2); %b为TXT文档.
n=b(:,3);
t=b(:,1);
z=20/180*pi;
x=e*cos(z)+n*sin(z);
y=-e*sin(z)+n*cos(z);
plot(x,y,'r')
输出的图线发生了变化.
如图所示,图线是由一系列数据点连线而成,现在需要将图线开始的直线变成水平的,也就是旋转到开始点与横轴重合.如何操作,
e=b(:,2); %b为TXT文档.
n=b(:,3);
t=b(:,1);
z=20/180*pi;
x=e*cos(z)+n*sin(z);
y=-e*sin(z)+n*cos(z);
plot(x,y,'r')
输出的图线发生了变化.
clear
clc
data=[0.0027 0.0161 0.0321 0.0509 0.0705 0.0848 0.0975 0.1090 0.1210 0.1311 0.1481...
0.1525 0.1548 0.1551 0.1587 0.1606 0.1608 0.1657 0.1675 0.1696 0.1716 0.1758...
0.1772 0.1792 0.1804 0.1831 0.1845 0.1845 0.1850 0.2085 0.2235 0.2403 0.2661...
0.3001 0.3295 0.3770 0.4232 0.4623 0.5000;...
0.0799 0.5594 1.1187 1.6781 2.5571 3.1164 3.6196 4.2379 4.7738 5.3509 6.4227...
20.4722 19.2561 21.8737 22.4508 7.5357 18.3492 17.5660 23.4814 16.7009 8.9784 15.4091...
9.6380 14.5362 10.4624 13.5541 11.5754 25.0066 12.6472 26.4906 27.2738 27.9540 28.9639...
30.1666 31.1644 32.3101 33.3219 34.1239 34.9201];
[data(2,:),I2]=sort(data(2,:));
data(1,:)=data(1,I2);
plot(data(1,:),data(2,:),'-k')
hold on
%下面才是旋转代码!
data=[1/0.5,0;0,1/35]*data;
theta=20/180*pi; %顺时针转20度
data=[cos(theta),sin(theta);-sin(theta),cos(theta)]*data;
%直接旋转
data=[0.5,0;0,35]*data;
plot(data(1,:),data(2,:),'-b')
% 旋转后恢复原有范围
data=[0.5/max(data(1,:)),0;0,35/max(data(2,:))]*data;
plot(data(1,:),data(2,:),'-r')
legend('原有数据','直接旋转','旋转后恢复原有范围')
再问: data=[cos(theta),sin(theta);-sin(theta),cos(theta)]*data; 这句的意思是不是矩阵相乘。如果data=[x;y],那么上面的意思是: x.*cos(theta)+y.*sin(theta) -x.*sin(theta)+y.*cos(theta); 按照上面做后,图形发生了变化,请指教。
再答: 先把x,y归一化,再旋转,因为你看到的原图,虽然x和y的范围相差很大,但是两个轴的长度在视觉上是差不多的,真要是按值的范围画坐标轴的话,那原图就基本上是一个竖直的直线了,旋转完当然也几乎是一条直线了。所以要先归一化,旋转之后,你再回复它们的范围。另外,旋转矩阵[cos(theta),sin(theta);-sin(theta),cos(theta)] 是绕原点旋转。要是绕其它点旋转,先减去,旋转完后再加上。
再问: 如何归一化呢?旋转完后如何恢复他们的范围?谢谢!
再答: 数据分别除以最大值后,乘以旋转矩阵,之后再分别除以 当前 最大值,再乘上 原来 的最大值。
clc
data=[0.0027 0.0161 0.0321 0.0509 0.0705 0.0848 0.0975 0.1090 0.1210 0.1311 0.1481...
0.1525 0.1548 0.1551 0.1587 0.1606 0.1608 0.1657 0.1675 0.1696 0.1716 0.1758...
0.1772 0.1792 0.1804 0.1831 0.1845 0.1845 0.1850 0.2085 0.2235 0.2403 0.2661...
0.3001 0.3295 0.3770 0.4232 0.4623 0.5000;...
0.0799 0.5594 1.1187 1.6781 2.5571 3.1164 3.6196 4.2379 4.7738 5.3509 6.4227...
20.4722 19.2561 21.8737 22.4508 7.5357 18.3492 17.5660 23.4814 16.7009 8.9784 15.4091...
9.6380 14.5362 10.4624 13.5541 11.5754 25.0066 12.6472 26.4906 27.2738 27.9540 28.9639...
30.1666 31.1644 32.3101 33.3219 34.1239 34.9201];
[data(2,:),I2]=sort(data(2,:));
data(1,:)=data(1,I2);
plot(data(1,:),data(2,:),'-k')
hold on
%下面才是旋转代码!
data=[1/0.5,0;0,1/35]*data;
theta=20/180*pi; %顺时针转20度
data=[cos(theta),sin(theta);-sin(theta),cos(theta)]*data;
%直接旋转
data=[0.5,0;0,35]*data;
plot(data(1,:),data(2,:),'-b')
% 旋转后恢复原有范围
data=[0.5/max(data(1,:)),0;0,35/max(data(2,:))]*data;
plot(data(1,:),data(2,:),'-r')
legend('原有数据','直接旋转','旋转后恢复原有范围')
再问: data=[cos(theta),sin(theta);-sin(theta),cos(theta)]*data; 这句的意思是不是矩阵相乘。如果data=[x;y],那么上面的意思是: x.*cos(theta)+y.*sin(theta) -x.*sin(theta)+y.*cos(theta); 按照上面做后,图形发生了变化,请指教。
再答: 先把x,y归一化,再旋转,因为你看到的原图,虽然x和y的范围相差很大,但是两个轴的长度在视觉上是差不多的,真要是按值的范围画坐标轴的话,那原图就基本上是一个竖直的直线了,旋转完当然也几乎是一条直线了。所以要先归一化,旋转之后,你再回复它们的范围。另外,旋转矩阵[cos(theta),sin(theta);-sin(theta),cos(theta)] 是绕原点旋转。要是绕其它点旋转,先减去,旋转完后再加上。
再问: 如何归一化呢?旋转完后如何恢复他们的范围?谢谢!
再答: 数据分别除以最大值后,乘以旋转矩阵,之后再分别除以 当前 最大值,再乘上 原来 的最大值。
Matlab图线旋转如图所示,图线是由一系列数据点连线而成,现在需要将图线开始的直线变成水平的,也就是旋转到开始点与横轴
钟表的时针从3点开始,顺时针旋转____时,时针与分针第一次重合.
如图,已知平行四边形ABCD的对角线AC、BD交于点O,直线EF从与BD重合位开始,绕点O顺时针旋转交AB、CD于点E、
如图,已知平行四边形ABCD的对角线AC、BD交于点O,直线EF从与BD重合位开始,饶点O顺时针旋转交AB、CD
如图,一块边长为10cm的正方形木板ABCD,在水平桌面上绕点D按顺时针方向旋转到A′B′C′D′的位置时,顶点B从开始
对于图形的旋转,旋转中心在对应点的连线的_______ 线上.
为什么对于旋转对称图形来说,旋转中心就是旋转前后重合点连线的垂直平分线的交点?
在绝缘水平面上固定两个等量同种电荷P、Q,在PQ连线上的M点由静止释放一带电滑块,则滑块会由静止开始一直向右运动到PQ连
从12点整开始计时,到12点几分时,分针和时针旋转的角度第一次相差90度?第二次呢?请给出答案和解析.
如图所示的图形是我国古代“弦图”的变形,该图可由Rt△ABC绕点O同向连续旋转三次(每次旋转90°)而得.因此,有“数学
一质量为m的滑雪者从A点由静止沿粗糙曲面滑下,到B点后水平飞离B点.空间几何尺寸如图所示,滑雪者从B点开始做平抛运动的水
一质量为m的滑雪者从A点由静止沿粗糙曲面滑下,到B点后水平飞离B点.空间几何尺寸如图所示,滑雪者从B点开始做平抛运动的水