画点
x=[-1, -1, 1, 1, -1, 0]
y=[-1, 1, 1, -1, -1, 0]
% r是颜色, o是点的形状
plot(x, y, 'ro')
% 画线
plot(x, y, 'r')
求最大最小值
x=[-1, -1, 1, 1, -1, 0]
y=[-1, 1, 1, -1, -1, 0]
% -1
min(y)
% 1
max(x)
计算二维旋转矩阵
dcm = angle2dcm(z_angle, y_angle, x_angle, 'zyx');
它可以根据给定的欧拉角(按照一定的顺序,如’zyx’等)计算出对应的方向余弦矩阵。
例如,如果要将绕 z 轴旋转的角度z_angle、绕 y 轴旋转的角度y_angle、绕 x 轴旋转的角度x_angle转换为方向余弦矩阵,可以使用以下代码:
其中,'zyx’表示旋转顺序为 z-y-x,即先绕 z 轴旋转,再绕 y 轴旋转,最后绕 x 轴旋转。你也可以根据需要指定其他旋转顺序,例如’zxy’等。
需注意的是,MATLAB 中还有一个类似的函数eul2rotm,它来自于“Robotic System Toolbox”,采用的是矢量旋转或点旋转(point rotation)的约定,这两个函数算出来的旋转矩阵互为转置。
显示[x1, y1, x2, y2, x3, y3…]这样的数据结构表示的多个点
在 MATLAB 中,要显示像 [x1, y1, x2, y2, x3, y3,…] 这样的数据结构表示的多个点,可以使用多种方法,以下是一些常见的方式:
- 使用 plot 函数
points = [x1, y1, x2, y2, x3, y3,...];x = points(1:2:end); % 提取所有的 x 坐标y = points(2:2:end); % 提取所有的 y 坐标plot(x, y, 'o'); % 'o' 表示以圆形标记显示点
- 使用 scatter 函数
points = [x1, y1, x2, y2, x3, y3,...];x = points(1:2:end);y = points(2:2:end);scatter(x, y);
- 以循环的方式逐个绘制点
points = [x1, y1, x2, y2, x3, y3,...];for i = 1:2:length(points)plot(points(i), points(i + 1), 'o');hold on; % 保持当前图形,以便添加更多点end
例如,如果您的数据是 [1, 2, 3, 4, 5, 6],那么 x = [1, 3, 5],y = [2, 4, 6],通过上述方法就可以将这些点显示出来。
scatter函数
在 MATLAB 中,scatter 函数用于绘制散点图。
scatter 函数的基本语法是:scatter(x,y),其中 x 和 y 是分别表示点的横坐标和纵坐标的向量。
以下是一些常见的用法和示例:
简单的散点图绘制:
x = [1, 2, 3, 4, 5];y = [5, 4, 3, 2, 1];scatter(x, y);
设置点的颜色:
x = [1, 2, 3, 4, 5];y = [5, 4, 3, 2, 1];c = [1, 2, 3, 4, 5]; % 颜色值向量scatter(x, y, c);
设置点的大小:
x = [1, 2, 3, 4, 5];y = [5, 4, 3, 2, 1];s = [10, 20, 30, 40, 50]; % 大小值向量scatter(x, y, s);
同时设置颜色和大小:
x = [1, 2, 3, 4, 5];y = [5, 4, 3, 2, 1];c = [1, 2, 3, 4, 5];s = [10, 20, 30, 40, 50];scatter(x, y, s, c);
分组绘制散点图:
x1 = [1, 2, 3];y1 = [4, 5, 6];x2 = [7, 8, 9];y2 = [10, 11, 12];scatter(x1, y1, 'r'); % 第一组,红色hold on;scatter(x2, y2, 'b'); % 第二组,蓝色
通过灵活运用 scatter 函数的参数,您可以根据数据的特点和需求,创建出各种丰富多样的散点图来直观地展示数据分布和关系。
如何显示[[x1, y1], [x2, y2]…]这样的数据结构表示的多个点
在 MATLAB 中,对于数据结构为 [[x1, y1], [x2, y2],…] 这样的多个点,可以通过以下几种方式来显示:
提取坐标后使用 plot 函数:
points = [[x1, y1], [x2, y2],...];x = [points(:, 1)];y = [points(:, 2)];plot(x, y, 'o');
直接使用 scatter 函数:
points = [[x1, y1], [x2, y2],...];x = [points(:, 1)];y = [points(:, 2)];scatter(x, y);
以循环方式逐个绘制点:
points = [[x1, y1], [x2, y2],...];for i = 1:size(points, 1)plot(points(i, 1), points(i, 2), 'o');hold on;end
例如,如果您的数据是 [[1, 2], [3, 4], [5, 6]],通过上述方法就可以将这些点显示出来。