八协解姿态

% 文件路径
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; % 显示网格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值