% 文件路径
filePath = 'E:\专业考核\out1.txt';
% 读取数据
fid = fopen(filePath, 'r');
if fid == -1
error('无法打开文件');
end
% 逐行读取数据
data = [];
while ~feof(fid)
line = fgetl(fid); % 读取一行数据
if startsWith(line, 'Roll: ') % 如果行以"Roll: "开头
value = str2double(strrep(line, 'Roll: ', '')); % 提取数值部分并转换为数字
data = [data; value]; % 将数值添加到数据数组中
end
end
fclose(fid);
% 绘制图像
plot(data);
xlabel('数据点');
ylabel('Roll 值');
title('Roll 数据可视化');
grid on; % 显示网格
% 文件路径
filePath = 'your_file.txt';
% 读取数据
fid = fopen(filePath, 'r');
if fid == -1
error('无法打开文件');
end
% 逐行读取数据
data = [];
while ~feof(fid)
line = fgetl(fid); % 读取一行数据
if startsWith(line, 'Yaw: ') % 如果行以"Yaw: "开头
value = str2double(strrep(line, 'Yaw: ', '')); % 提取数值部分并转换为数字
data = [data; value]; % 将数值添加到数据数组中
end
end
fclose(fid);
% 绘制图像
plot(data);
xlabel('数据点');
ylabel('Yaw 值');
title('Yaw 数据可视化');
grid on; % 显示网格
% 文件路径
inputFile = 'C:\Users\lx192\Desktop\新建文件夹 (3)\out.txt';
outputFiles = {'out1.txt', 'out2.txt', 'out3.txt', 'out4.txt', 'out5.txt', 'out6.txt'};
% 打开输入文件
fid = fopen(inputFile, 'r');
if fid == -1
error('无法打开输入文件');
end
% 打开输出文件
numOutputFiles = numel(outputFiles);
fidOut = cell(numOutputFiles, 1);
for i = 1:numOutputFiles
fidOut{i} = fopen(outputFiles{i}, 'w');
if fidOut{i} == -1
error('无法打开输出文件 %s', outputFiles{i});
end
end
try
% 读取文件内容
data = textscan(fid, '%s', 'Delimiter', '\n');
lines = data{1};
numLines = numel(lines);
% 将数据循环写入不同的输出文件
for i = 1:numLines
idx = mod(i-1, numOutputFiles) + 1; % 计算输出文件的索引
fprintf(fidOut{idx}, '%s\n', lines{i});
end
% 关闭文件
fclose(fid);
for i = 1:numOutputFiles
fclose(fidOut{i});
end
disp('文件写入完成');
catch
% 如果发生错误,关闭文件并显示错误消息
fclose(fid);
for i = 1:numOutputFiles
fclose(fidOut{i});
end
disp('写入文件时发生错误');
end
using System;
using System.IO;
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入要读取的文件路径:");
string filePath = Console.ReadLine();
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string outputPath = Path.Combine(desktopPath, "八协解mavlink结果1.txt");
FileStream fileStream = new FileStream(outputPath, FileMode.Create);
StreamWriter streamWriter = new StreamWriter(fileStream);
Console.SetOut(streamWriter);
FileStream fs = new FileStream(filePath, FileMode.Open);
MAVLink.MavlinkParse parse = new MAVLink.MavlinkParse();
while (fs.Position < fs.Length)
{
var msg = parse.ReadPacket(fs);
if (msg.msgid == 30)
{
// 处理姿态数据
MAVLink.mavlink_attitude_t attitude = (MAVLink.mavlink_attitude_t)msg.data;
double roll_deg = attitude.roll * (180 / Math.PI); // 将弧度转换为度
double pitch_deg = attitude.pitch * (180 / Math.PI); // 将弧度转换为度
double yaw_deg = attitude.yaw * (180 / Math.PI); // 将弧度转换为度
Console.WriteLine("Roll: {0}", roll_deg);
Console.WriteLine("Pitch: {0}",pitch_deg);
Console.WriteLine("Yaw: {0}",yaw_deg);
}
}
fs.Close();
// 关闭文件流
streamWriter.Close();
fileStream.Close();
}
}
% 文件路径
filePath = 'your_file.txt';
% 读取数据
fid = fopen(filePath, 'r');
if fid == -1
error('无法打开文件');
end
% 逐行读取数据
data = [];
while ~feof(fid)
line = fgetl(fid); % 读取一行数据
if startsWith(line, 'Pitch: ') % 如果行以"Pitch: "开头
value = str2double(strrep(line, 'Pitch: ', '')); % 提取数值部分并转换为数字
data = [data; value]; % 将数值添加到数据数组中
end
end
fclose(fid);
% 绘制图像
plot(data);
xlabel('数据点');
ylabel('Pitch 值');
title('Pitch 数据可视化');
grid on; % 显示网格