欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Matlab實(shí)現(xiàn)讀寫txt文件數(shù)據(jù)與進(jìn)制轉(zhuǎn)換

 更新時(shí)間:2023年12月14日 11:35:38   作者:YprgDay  
這篇文章主要為大家詳細(xì)介紹了Matlab實(shí)現(xiàn)讀寫txt文件數(shù)據(jù)與進(jìn)制轉(zhuǎn)換的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

前言

本文中讀與寫的txt數(shù)據(jù)格式適用于一行一個(gè)數(shù)據(jù)的情況,其他情況請(qǐng)自行結(jié)合修改。如下圖所示:

讀txt文件

讀txt中的十進(jìn)制數(shù)據(jù)到MATLAB

%% 此代碼用于讀取TXT文件的十進(jìn)制數(shù)據(jù)到MATLAB
% 指定txt文件路徑
file_path = 'F:\Add Window_and_FFT Module Design\Vivado_project\rtl\data_decimal.txt';%單引號(hào)中放文件地址
% 讀取txt文件
data = load(file_path)';%根據(jù)需要加單引號(hào)轉(zhuǎn)置
disp('讀取數(shù)據(jù)完成');

讀txt數(shù)據(jù)的其他進(jìn)制數(shù)據(jù)轉(zhuǎn)為十進(jìn)制到MATLAB

修改txt的讀取地址,修改txt中的數(shù)據(jù)進(jìn)制txt_radix,修改txt中數(shù)據(jù)對(duì)應(yīng)的二進(jìn)制位數(shù)bits

默認(rèn)是有符號(hào)數(shù)轉(zhuǎn)換,無符號(hào)時(shí)注釋掉標(biāo)注部分。

%% 讀txt數(shù)據(jù)的其他進(jìn)制數(shù)據(jù)轉(zhuǎn)為十進(jìn)制到MATLAB
%讀取地址與參數(shù)設(shè)置
txtdatacell = textscan(fopen( 'F:\Add Window_and_FFT Module Design\Vivado_project\rtl\bin_Signal.txt'),'%s');
txt_radix = 2 ; %讀取的txt數(shù)據(jù)的進(jìn)制
bits = 16;        % 信號(hào)對(duì)應(yīng)的二進(jìn)制位數(shù),讀取補(bǔ)碼數(shù)據(jù)時(shí)使用
%用于存儲(chǔ)數(shù)據(jù)的變量聲明
txtdata = txtdatacell{1};
length_txtdata = length(txtdata);% txt中的數(shù)據(jù)個(gè)數(shù)
decdata = zeros(length_txtdata,1);    
%讀取主體部分
for i=1:length_txtdata
    decdata(i) = base2dec( txtdata{i},txt_radix );    %將所有進(jìn)制數(shù)轉(zhuǎn)換為無符號(hào)十進(jìn)制數(shù)
    %begin:無符號(hào)時(shí)注釋此部分
    if(decdata(i)>= 2^(bits-1))    % 如果補(bǔ)碼對(duì)應(yīng)的十進(jìn)制結(jié)果大于等于一半
            decdata(i)=base2dec(txtdata{i},txt_radix )-2^bits;% 轉(zhuǎn)換為負(fù)數(shù)
    end
    %end:無符號(hào)時(shí)注釋此部分
end
disp('讀取轉(zhuǎn)換完成');

讀txt內(nèi)容到MATLAB

txtdatacell = textscan(fopen( 'F:\Add Window_and_FFT Module Design\Vivado_project\rtl\bin_Signal.txt'),'%s');
txtdata = txtdatacell{1};
disp('讀取完成');

寫txt文件

總:將MATLAB生成的10進(jìn)制數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制和radix進(jìn)制寫入txt

此代碼包含了生成信號(hào)數(shù)據(jù),輸出十進(jìn)制txt,輸出其他進(jìn)制txt。后兩小節(jié)的"分"為該總部分的一小部分。

%本代碼用于將MATLAB生成的十進(jìn)制數(shù)據(jù)轉(zhuǎn)為radix進(jìn)制生成txt文件,radix可設(shè)為2的次方,如:2 4 8 16...
%根據(jù)需要設(shè)置生成信號(hào)和參數(shù)設(shè)置部分,修改寫txt主體部分文件輸出地址
%參數(shù)設(shè)置中radix表示將Signal轉(zhuǎn)換成該進(jìn)制數(shù)據(jù),默認(rèn)生成10進(jìn)制和radix進(jìn)制的兩個(gè)txt數(shù)據(jù)
%工作區(qū)中Signal是txt中對(duì)應(yīng)的十進(jìn)制數(shù)據(jù);radix_data_cell是txt中對(duì)應(yīng)的其他進(jìn)制數(shù)據(jù)
clear all;close all;clc; %清理工作區(qū),關(guān)閉所有窗口,清空文本
%% 信號(hào)生成與參數(shù)設(shè)置
%生成信號(hào)
fs = 128;        %采樣率
f_Signal = 5;    %信號(hào)頻率
Signal_N = 128;  %信號(hào)點(diǎn)數(shù)
t = 0:1/fs:(Signal_N-1)/fs; %取Signal_N點(diǎn)信號(hào)觀察
scale = 2^15;    %擴(kuò)大倍數(shù)
Signal1 = cos(2*pi*f_Signal*t)*scale;
Signal = round(Signal1)';%取整
%參數(shù)設(shè)置
bits = 16;       %信號(hào)被量化后的二進(jìn)制位數(shù)
radix = 2;       %轉(zhuǎn)換成'2的次方進(jìn)制可選'的數(shù)據(jù)輸出,如:2 4 8 16...
radix_bitnum = log2(radix);%進(jìn)制對(duì)應(yīng)的二進(jìn)制位數(shù),例16進(jìn)制對(duì)應(yīng)4位二進(jìn)制
Converte_bits = ceil(bits/radix_bitnum);%信號(hào)轉(zhuǎn)換成radix進(jìn)制的位數(shù),如14bits二進(jìn)制可轉(zhuǎn)為4位十六進(jìn)制數(shù)
%% 寫txt主體部分
%將生成的十進(jìn)制數(shù)據(jù)寫入txt文件中
fid=fopen('F:\Add Window_and_FFT Module Design\Vivado_project\rtl\data_decimal.txt','w');
for i = 1:numel(Signal)-1
    fprintf(fid, '%8d\r\n', Signal(i));
end
    fprintf(fid, '%8d', Signal(end));
fclose(fid);
disp('十進(jìn)制數(shù)據(jù)已寫入到txt文件。');
%將生成的進(jìn)制數(shù)據(jù)寫入txt文件中
% 初始化一個(gè) cell 數(shù)組用于存儲(chǔ)轉(zhuǎn)換后的進(jìn)制字符串
radix_data_cell = cell(length(Signal), 1);
% 循環(huán)處理每個(gè)元素
for i=1:length(Signal)
    if (Signal(i) == 2^(bits-1))
         radix_data_cell{i}= dec2base((Signal(i)-1),radix,Converte_bits);%補(bǔ)碼范圍不包括+2^(bits-1)
    else
         radix_data_cell{i}= dec2base(Signal(i)+(Signal(i)<0)*2^bits,radix,Converte_bits);%(Signal(i)<0用于量化為負(fù)數(shù)補(bǔ)碼的情況
    end
end
% 打開一個(gè)文本文件以寫入模式
fid = fopen('F:\Add Window_and_FFT Module Design\Vivado_project\rtl\data_radix.txt', 'w');
% 循環(huán)遍歷 cell 數(shù)組并將每個(gè)元素寫入文件
for i = 1:numel(radix_data_cell)-1
    fprintf(fid, '%s\n', radix_data_cell{i});
end
    fprintf(fid, '%s', radix_data_cell{end});
    %fprintf(fid,';'); %最后一行分號(hào)結(jié)尾
% 關(guān)閉文件
fclose(fid);
disp('其他進(jìn)制數(shù)據(jù)已寫入到txt文件。');

分:將MATLAB中十進(jìn)制數(shù)據(jù)以’radix進(jìn)制’數(shù)據(jù)格式寫入txt文件

%% 將MATLAB中十進(jìn)制數(shù)據(jù)以'radix進(jìn)制'數(shù)據(jù)格式寫入txt文件
Signal = decdata;%修改decdata為需要轉(zhuǎn)換的數(shù)據(jù),需要為整數(shù),用round等取整
bits = 16;      %信號(hào)對(duì)應(yīng)的二進(jìn)制位數(shù)
radix = 16;      %轉(zhuǎn)換成'2的次方進(jìn)制可選'的數(shù)據(jù)輸出,如:2 4 8 16...
radix_bitnum = log2(radix);%進(jìn)制對(duì)應(yīng)的二進(jìn)制位數(shù),例16進(jìn)制對(duì)應(yīng)4位二進(jìn)制
Converte_bits = ceil(bits/radix_bitnum);%信號(hào)轉(zhuǎn)換成radix進(jìn)制的位數(shù),如14bits二進(jìn)制可轉(zhuǎn)為4位十六進(jìn)制數(shù)
% 初始化一個(gè) cell 數(shù)組用于存儲(chǔ)轉(zhuǎn)換后的進(jìn)制字符串
radix_data_cell = cell(length(Signal), 1);
% 循環(huán)處理每個(gè)元素
for i=1:length(Signal)
    if (Signal(i) == 2^(bits-1))
         radix_data_cell{i}= dec2base((Signal(i)-1),radix,Converte_bits);%補(bǔ)碼范圍不包括+2^(bits-1)
    else
         radix_data_cell{i}= dec2base(Signal(i)+(Signal(i)<0)*2^bits,radix,Converte_bits);%(Signal(i)<0用于量化為負(fù)數(shù)補(bǔ)碼的情況
    end
end
% 打開一個(gè)文本文件以寫入模式
fid = fopen('F:\Add Window_and_FFT Module Design\Vivado_project\rtl\data_radix.txt', 'w');
% 循環(huán)遍歷 cell 數(shù)組并將每個(gè)元素寫入文件
for i = 1:numel(radix_data_cell)-1
    fprintf(fid, '%s\n', radix_data_cell{i});
end
    fprintf(fid, '%s', radix_data_cell{end});
    %fprintf(fid,';'); %最后一行分號(hào)結(jié)尾
% 關(guān)閉文件
fclose(fid);
disp('其他進(jìn)制數(shù)據(jù)已寫入到txt文件。');

分:將MATLAB中十進(jìn)制數(shù)據(jù)寫入txt文件

%% 將生成的十進(jìn)制數(shù)據(jù)寫入txt文件中
Signal = decdata;%修改decdata為需要寫入txt的數(shù)據(jù)
fid=fopen('F:\Add Window_and_FFT Module Design\Vivado_project\rtl\data_decimal.txt','w');
for i = 1:numel(Signal)-1
    fprintf(fid, '%8d\r\n', Signal(i));
end
    fprintf(fid, '%8d', Signal(end));
fclose(fid);
disp('十進(jìn)制數(shù)據(jù)已寫入到txt文件。');

讀txt數(shù)據(jù)進(jìn)制轉(zhuǎn)換后寫入新的txt

將上面小節(jié)的讀txt數(shù)據(jù)的其他進(jìn)制數(shù)據(jù)轉(zhuǎn)為十進(jìn)制到MATLAB和分:將MATLAB中十進(jìn)制數(shù)據(jù)以'radix進(jìn)制'數(shù)據(jù)格式寫入txt文件組合即可實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換。修改對(duì)應(yīng)參數(shù)設(shè)置與地址。

到此這篇關(guān)于Matlab實(shí)現(xiàn)讀寫txt文件數(shù)據(jù)與進(jìn)制轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Matlab讀寫txt與進(jìn)制轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ros項(xiàng)目調(diào)試:vscode下配置開發(fā)ROS項(xiàng)目的詳細(xì)教程

    ros項(xiàng)目調(diào)試:vscode下配置開發(fā)ROS項(xiàng)目的詳細(xì)教程

    這篇文章主要介紹了ros項(xiàng)目調(diào)試:vscode下配置開發(fā)ROS項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • C語言中#if的使用詳解

    C語言中#if的使用詳解

    #if和#endif是一組同時(shí)使用的,叫做條件編譯指令。#if與#define、#include等指令一樣是由預(yù)處理器這個(gè)強(qiáng)大的工具處理的,預(yù)處理器可以在編譯前處理c程序,這篇文章主要介紹了C語言中#if的使用,需要的朋友可以參考下
    2022-11-11
  • C++實(shí)現(xiàn)馬踏棋盤(騎士周游)

    C++實(shí)現(xiàn)馬踏棋盤(騎士周游)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)馬踏棋盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++?函數(shù)的介紹

    C++?函數(shù)的介紹

    本篇主要介紹了函數(shù)的基礎(chǔ)概念以及一些特殊的函數(shù)方法和類型,函數(shù)重載以及函數(shù)指針,下面一起進(jìn)入文章學(xué)習(xí)詳細(xì)的內(nèi)容吧,需要的朋友也可以參考一下
    2021-12-12
  • C語言楊氏矩陣實(shí)例教你編寫

    C語言楊氏矩陣實(shí)例教你編寫

    楊氏矩陣是一個(gè)數(shù)字矩陣,矩陣的每一行從左到右一次遞增,矩陣從上到下遞增,在這樣的矩陣中查找一個(gè)數(shù)字是否存在。時(shí)間復(fù)雜度小于O(N),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2023-02-02
  • C++有符號(hào)和無符號(hào)之間的轉(zhuǎn)換問題

    C++有符號(hào)和無符號(hào)之間的轉(zhuǎn)換問題

    在開發(fā)中經(jīng)常會(huì)遇到有符號(hào)和無符號(hào)之間的轉(zhuǎn)換問題,如果不清楚問題根源,很難解決bug,今天小編通過本文給大家分享c++有符號(hào)無符號(hào)轉(zhuǎn)換問題,需要的朋友參考下
    2021-07-07
  • 如何將編譯過的C++庫迅速部署在Visual?Studio新項(xiàng)目中

    如何將編譯過的C++庫迅速部署在Visual?Studio新項(xiàng)目中

    本文介紹在Visual?Studio中,通過屬性表,使得一個(gè)新建解決方案中的項(xiàng)目可以快速配置已有解決方案的項(xiàng)目中各類已編譯好的C++第三方庫的方法,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • C++容器算法示例詳解

    C++容器算法示例詳解

    在談到容器算法,我們大概率會(huì)用到謂詞predicate,謂詞返回的類型是布爾類型(bool)可以是lambda表達(dá)式、函數(shù)對(duì)象以及其它可調(diào)用的對(duì)象,這篇文章主要介紹了C++容器算法,需要的朋友可以參考下
    2024-08-08
  • C語言數(shù)組與地址、數(shù)組名到底是什么詳解

    C語言數(shù)組與地址、數(shù)組名到底是什么詳解

    在寫代碼的時(shí)候,我們經(jīng)常用到數(shù)組,那么有沒有想過數(shù)組名是什么呢?這篇文章主要給大家介紹了關(guān)于C語言數(shù)組與地址、數(shù)組名到底是什么的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • C語言實(shí)現(xiàn)掃雷游戲詳細(xì)代碼

    C語言實(shí)現(xiàn)掃雷游戲詳細(xì)代碼

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)掃雷游戲的具體步驟和詳細(xì)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評(píng)論