最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

讀txt文件

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

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

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

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

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

%% 讀txt數(shù)據(jù)的其他進制數(shù)據(jù)轉(zhuǎ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ù)的進制
bits = 16;        % 信號對應(yīng)的二進制位數(shù),讀取補碼數(shù)據(jù)時使用
%用于存儲數(shù)據(jù)的變量聲明
txtdata = txtdatacell{1};
length_txtdata = length(txtdata);% txt中的數(shù)據(jù)個數(shù)
decdata = zeros(length_txtdata,1);    
%讀取主體部分
for i=1:length_txtdata
    decdata(i) = base2dec( txtdata{i},txt_radix );    %將所有進制數(shù)轉(zhuǎn)換為無符號十進制數(shù)
    %begin:無符號時注釋此部分
    if(decdata(i)>= 2^(bits-1))    % 如果補碼對應(yīng)的十進制結(jié)果大于等于一半
            decdata(i)=base2dec(txtdata{i},txt_radix )-2^bits;% 轉(zhuǎn)換為負(fù)數(shù)
    end
    %end:無符號時注釋此部分
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進制數(shù)據(jù)轉(zhuǎn)換成十進制和radix進制寫入txt

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

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

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

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

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

%% 將生成的十進制數(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('十進制數(shù)據(jù)已寫入到txt文件。');

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

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

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

相關(guān)文章

  • C語言函數(shù)的聲明、定義、調(diào)用方式

    C語言函數(shù)的聲明、定義、調(diào)用方式

    本文詳細介紹了如何在不同情況下定義和使用函數(shù),包括無返回值和有返回值的無參及有參函數(shù),以及如何將數(shù)組作為函數(shù)參數(shù),總結(jié)了兩種在Java中聲明和調(diào)用函數(shù)的方式
    2026-02-02
  • C語言之實現(xiàn)字符串小寫變大寫的實例

    C語言之實現(xiàn)字符串小寫變大寫的實例

    這篇文章主要介紹了C語言之實現(xiàn)字符串小寫變大寫的實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • c++ 實現(xiàn)KMP算法

    c++ 實現(xiàn)KMP算法

    這篇文章主要介紹了c++ 實現(xiàn)KMP算法的示例,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-10-10
  • C++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)詳解

    C++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)詳解

    下面小編就為大家?guī)硪黄狢++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)的文章。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • C語言入門篇--初識C語言及數(shù)據(jù)類型

    C語言入門篇--初識C語言及數(shù)據(jù)類型

    本篇文章是c語言基礎(chǔ)篇,主要為大家介紹了C語言的基本類型,為大家介紹了什么是C語言,希望可以幫助大家快速入門c語言的世界,更好的理解c語言
    2021-08-08
  • C++實現(xiàn)控制臺版掃雷程序

    C++實現(xiàn)控制臺版掃雷程序

    這篇文章主要為大家詳細介紹了C++實現(xiàn)控制臺版掃雷程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • c++編程學(xué)習(xí)的技巧總結(jié)

    c++編程學(xué)習(xí)的技巧總結(jié)

    在本篇文章里小編給大家分享了關(guān)于c++編程學(xué)習(xí)的技巧以及知識點總結(jié),需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • C++類模板與模板類深入詳解

    C++類模板與模板類深入詳解

    這篇文章主要介紹了C++類模板與模板類深入詳解,需要的朋友可以參考下
    2014-07-07
  • 詳解如何將Spire.Doc for C++集成到C++程序中

    詳解如何將Spire.Doc for C++集成到C++程序中

    Spire.Doc for C++是一個專業(yè)的Word庫,供開發(fā)人員在任何類型的C++應(yīng)用程序中閱讀、創(chuàng)建、編輯、比較和轉(zhuǎn)換 Word 文檔,本文演示了如何以兩種不同的方式將 Spire.Doc for C++ 集成到您的 C++ 應(yīng)用程序中,希望對大家有所幫助
    2023-05-05
  • c++重載運算符時返回值為類的對象或者返回對象的引用問題

    c++重載運算符時返回值為類的對象或者返回對象的引用問題

    這篇文章主要介紹了c++重載運算符時返回值為類的對象或者返回對象的引用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

金山区| 江油市| 桦甸市| 广宁县| 什邡市| 衡东县| 湖口县| 浮山县| 阿拉尔市| 临夏县| 西和县| 平昌县| 龙海市| 南和县| 武胜县| 宁国市| 双江| 荣昌县| 南城县| 达尔| 绥阳县| 武义县| 岚皋县| 安顺市| 平定县| 开阳县| 乡宁县| 乳山市| 曲水县| 托克托县| 南充市| 长治市| 阜阳市| 蒲江县| 台北市| 南丰县| 芒康县| 车致| 溧水县| 始兴县| 聂荣县|