MATLAB将数据写和读txt文件

1.MATLAB保存数据为TXT

1.1 按行输出

bb=out.car4_vr_2;
cc=out.car4_vl_2;
fid = fopen('结果记录5.txt','a'); %结果记录.txt是存储数据的文件,a是数据向后增加的意思
%fprintf(fid,'%f\t',cc); %  %f\t是将数据往同一行的后面存
fprintf(fid,'%f\n',bb); %  %f\n是将数据往下一行存
fclose(fid);

bb为要存的数据
一个是按行储存数据,一个是在数据的后面加一个制表位继续存储数据
以下为结果演示
在这里插入图片描述

1.2多行多列操作

fid = fopen('理论轨迹4.txt','a'); %结果记录.txt是存储数据的文件,a是数据向后增加的意思
matrix=path;                        %input_matrix为待输出矩阵
[m,n]=size(matrix);
for i=1:1:m
    for j=1:1:n
        if j==n
            fprintf(fid,'%g\n',matrix(i,j));
        else
            fprintf(fid,'%g\t',matrix(i,j));
        end
    end
end
fclose(fid);

在这里插入图片描述

2.MATBLAB 按行读取数据

%% 读取文本文件
load("theory_position.mat");
filename = 'agvposition.txt';
% 使用readtable函数读取文本文件
data = readtable(filename);
% 查看读取的数据
% disp(data);
data=table2array(data);

%多列数据读取
% 假设数据在data.txt里,且位于当面matlab路径里,用下面这句就可以了
[teb_x,teb_y,teb_theta]=textread('teb_poses.txt','%f\t %f \t %f',-1);
### 使用 MATLAB 取二进制 TXT 文件并转换为 ROM MIF 文件 #### 取二进制文本文件 为了从二进制文本文件数据,可以使用 `fscanf` 函数来解析文件中的数值。假设二进制数据是以十六进制字符串形式存储的,则可以通过以下方式取: ```matlab fid = fopen('binary_data.txt', 'r'); if fid == -1 error('无法打开文件'); end % 假设每行是一个十六进制数 hexData = textscan(fid, '%s', 'Delimiter', '\n'); fclose(fid); % 转换为十进制整数 decimalData = cellfun(@(x) hex2dec(x), hexData{1}); ``` 这段代码首先打开了指定路径下的二进制文本文件,并逐行取其中的内容[^1]。 #### 创建 MIF 文件头部信息 MIF (Memory Initialization File) 是一种用于初始化内存内容的标准文件格式,在 FPGA 设计中常用来配置 ROM 或 RAM 的初始状态。创建 MIF 文件前需定义其基本参数,如宽度(WIDTH)、深度(DEPTH),以及地址径宽(ADDRESS_RADIX)数据径宽(DATA_RADIX)。下面是一些典型的设置: ```matlab width = 8; % 数据位宽 depth = length(decimalData); % 存储器深度取决于输入数据大小 addressRadix = 'HEX'; % 地址基数采用十六进制表示法 dataRadix = 'DEC'; % 数据基数采用十进制表示法 ``` 这些变量指定了要生成的 MIF 文件的关键属性[^2]。 #### 构建完整的 MIF 文件内容 接下来构建整个 MIF 文件的内容字符串,包括头部分实际的数据条目: ```matlab mifContent = sprintf(['DEPTH = %d;\n' ... 'WIDTH = %d;\n' ... 'ADDRESS_RADIX = %s;\n' ... 'DATA_RADIX = %s;\n' ... 'CONTENT BEGIN\n'], depth, width, addressRadix, dataRadix); for i = 0:(length(decimalData)-1) mifContent = [mifContent, sprintf('%X : %d;\n', i, decimalData(i+1))]; end mifContent = [mifContent, 'END;\n']; ``` 此段脚本通过循环迭代每一个取到的十进制数值,并按照 MIF 文件的要求格式化每一项记录[^3]。 #### 写入 MIF 文件 最后一步就是把准备好的 MIF 文件内容保存至目标位置: ```matlab fid = fopen('output.mif', 'w'); fprintf(fid, '%s', mifContent); fclose(fid); disp('已成功创建 output.mif 文件!'); ``` 上述命令会将之前构造完成的 MIF 文本串写入名为 `output.mif` 的新文件中[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值