有些网友对我的代码提出了一些疑问,现在我将输入参数的数据格式贴图给大家看一下。
f_name,是我读入数据的名称,因为我要做到对这些轨迹结果图进行批量命名(按日期的),用到的网友可以把这个输入参数去掉即可。
画出轨迹图片的可视化。
下面我要对信息统计之后,画出轨迹的频数热力图,代码如下所示。
function [x,y,z] = visualization(tick_x,tick_y,tick_z,x_n,y_n,V)
% 此程序是对立方体中存储轨迹数据的频数进行可视化
% meshgrid 生成三维网格
[x,y,z] = meshgrid(tick_x,tick_y,tick_z);
% % 三维体切片平面
% cube = slice(x,y,z,z,tick_x,tick_y,tick_z);
% 用cat函数读取一列
frequency = cat(1,V.points);
% 最大频数
max_frequency = max(frequency);
% 控制不同频数的小立方体的颜色变化
% 控制颜色变化的条应该是10份(几份除以几)
% unit = max_frequency/10;
% 调用str_split函数
all_digital = string_split(V);
%%%%%%%%%%%%%%%% 显示三维立方体部分代码
% 按z轴进行切片,因为z轴长度较短,容易切片
for i =1: length(tick_z)
% 打开一个新窗口
% figure;
% 字符串匹配
% temp_i = num2str(i);
% 索引
index = [];
% 检查此切面中的小立方体的频数,返回存储这些频数的索引index
for k = 1:length(all_digital)
if all_digital(k) ==i
index = [index k];
else
continue
end
end
% 取出这个切面中存储点的所有小立方体和其频数
segment = V(index);
save segment
% 将有频数的小立方体上色,频数越大越黑
% 创建矩阵
% map = zeros(x_n-1,y_n-1);
map = zeros(x_n,y_n);
for j = 1:length(segment)
% 将频数值存入相应的矩阵中
a = segment(j).shape;
len_a = length(a);
if mod(len_a,2) == 0
b = a(1 : len_a-1);
if b == 3