转matlab如何matlab将矩阵写入文件数据转换成txt文件

matlab如何将矩阵数据转换成txt文件保存
转自:http://blog.csdn.net/lsg32/article/details/8618161
具体的命令是:用save *.txt -ascii x
*.txt为文件名,该文件存储于当前工作目录下,再打开就可以 打开后,数据有可能是以指数形式保存的.
看下面这个例子:
a =[17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ];
save afile.txt -ascii a
afile.txt打开之后,是这样的:
1.1 2.1 1.0 8.0 1.1
2.1 5.0 7.0 1.1 1.1
4.0 6.0 1.1 2.1 2.1
1.1 1.1 1.1 2.1 3.0
1.1 1.1 2.1 2.0 9.0
网上有很多这一类似的问题,但是都不是很理想,下面介绍一种方法,可以解决以上问题:用fprintf命令:以上面的例子为例:
第一种情况:
&& a=[17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ];
&& fid = fopen('b.txt','w');
fprintf(fid,'%gn',a);
fclose(fid);
然后用写字板打开b.txt,内容如下:为列向量
第二种情况:
对上面的命令做一下改动:# n 换行改为t,table键
&& fid = fopen('b.txt','w');
fprintf(fid,'%gt',a);
fclose(fid);
然后用写字板打开b.txt,内容如下:为行向量:
17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9
第三种情况:
综合上面的两个结果,我们编写以下命令:
fid=fopen('b.txt','w');%写入文件路径
[m,n]=size(a);
for i=1:1:m
for j=1:1:n
fprintf(fid,'%gn',a(i,j));
fprintf(fid,'%gt',a(i,j));
fclose(fid);
然后用写字板打开b.txt,内容如下:矩阵
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
说明:以上操作都是在当前的工作目录下完成!下面给出最一般的模型,大家可以试着自己操作,如果需要dat格式,直接把txt换为dat就可以,感谢我的同学姜永帅.
fid=fopen('C:Documents and Settingscleantotal.ped','wt');%写入文件路径
matrix=input_mattrix
%input_matrix为待输出矩阵
[m,n]=size(matrix);
fprintf(fid,'%g\n',matrix(i,j));
fprintf(fid,'%g\t',matrix(i,j));
fclose(fid);
没有更多推荐了,只需一步,快速开始
扫一扫,访问微社区
查看: 41090|回复: 20|关注: 0
请问怎么让矩阵输出到txt文件中后依然是矩阵?
<h1 style="color:# 麦片财富积分
新手, 积分 31, 距离下一级还需 19 积分
关注者: 2
30财富积分
X=rand(3);
dlmwrite('X.txt,X)
这样输出结果是连在了一起,该换行的地方用了一个像M的字符表示。
如将这些数据复制到word中的话,也是按照矩阵形式排列,请问在输出的这个结果里怎么让它按照矩阵形式排列呢?
我也用fprintf函数进行输出过,代码如下:
fout=fopen('X.txt','w');
fprintf(fout,'%8.4i %8.4i %5.4i\n',X)
fclose(fout)
但不知为何这样什么数据也没输出来,请问哪位高人知道这是怎么回事吗?
给楼主一个通用的把矩阵写入txt文件的:
> X=rand(8,6)
<h1 style="color:#9 麦片财富积分
关注者: 17
给楼主一个通用的把矩阵写入txt文件的:
& X=rand(8,6)
& & 0.3816& & 0.7547& & 0.3404& & 0.9593& & 0.2435& & 0.8308
& & 0.7655& & 0.2760& & 0.5853& & 0.5472& & 0.9293& & 0.5853
& & 0.7952& & 0.6797& & 0.2238& & 0.1386& & 0.3500& & 0.5497
& & 0.1869& & 0.6551& & 0.7513& & 0.1493& & 0.1966& & 0.9172
& & 0.4898& & 0.1626& & 0.2551& & 0.2575& & 0.2511& & 0.2858
& & 0.4456& & 0.1190& & 0.5060& & 0.8407& & 0.6160& & 0.7572
& & 0.6463& & 0.4984& & 0.6991& & 0.2543& & 0.4733& & 0.7537
& & 0.7094& & 0.9597& & 0.8909& & 0.8143& & 0.3517& & 0.3804
&& [r,c]=size(X);
fid=fopen('data.txt','w');
fprintf(fid,'%5f\t',X(i,j));
if rem(i,r)==0 & rem(j,c)==0
fprintf(fid,'\r\n');
fclose(fid);
不想当将军的裁缝不是好厨子!
<h1 style="color:#4 麦片财富积分
关注者: 12
X=rand(4)
dlmwrite('X.txt', X, 'precision', '%5f', 'delimiter', '\t')复制代码
http://hi.baidu.com/hyyly520/home
<h1 style="color:# 麦片财富积分
关注者: 2
回复:hyyly
真奇怪,我这里却不是像你那样显示的,还是跟以前的一样。
我也用QQ截了个图,但放不上来,真是郁闷
[ 本帖最后由 jefei 于
21:04 编辑 ]
<h1 style="color:# 麦片财富积分
关注者: 2
这是我的QQ截图
<h1 style="color:# 麦片财富积分
关注者: 2
回复:hackersun 谢谢
照你的方法我已经做到了,这个问题也算是解决了,谢谢
刚刚换了一个3*3矩阵,用这些代码输出就连成一片了,这次连换行符都没有,真是无奈
[ 本帖最后由 jefei 于
19:20 编辑 ]
<h1 style="color:#9 麦片财富积分
关注者: 17
三维矩阵怎么可能表现在txt上啊!
除非是一张表一张表的表示!
那我岂不是赚了30大洋啊 !:lol :) :victory:
不想当将军的裁缝不是好厨子!
<h1 style="color:# 麦片财富积分
关注者: 2
回复:hackersun
你没看明白我的意思,我说的三维矩阵是3*3的矩阵。你的代码里面连换行符都没有,根本不会换行,还不如直接用dlmwrite函数输出呢。之前会那样显示是因为那个8*6的矩阵那样输出正好符合文本框的大小。同样的文本框下,矩阵一变小,毛病就显现出来了。而加上换行符后还是跟之前一样显示,问题照样没解决。下面是没加换行符时的截图
[ 本帖最后由 jefei 于
19:31 编辑 ]
<h1 style="color:# 麦片财富积分
改变文本框大小,矩阵就变了?怎么破?????????????
<h1 style="color:# 麦片财富积分
就上面的代码应该这样修改才会按照矩阵的形式保存。我试了可以C:\Users\ruoting\Desktop\1.jpg
fid=fopen('邻接矩阵A.txt','w');
for i=1:nodes
& & for j=1:nodes
& && &&&fprintf(fid,'%1.0f\t',A(i,j));
&&fprintf(fid,'\r\n');
fclose(fid);
站长推荐 /3
Simulink工具定制实现高效模型验证
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区MATLAB数据保存成其他格式文件(.csv .xlsx .txt等)通用函数[faruto版本]
我的图书馆
MATLAB数据保存成其他格式文件(.csv .xlsx .txt等)通用函数[faruto版本]
FQuantToolBox发布后有些网友反应能否将获取的股票等相关数据保存成其他文件格式,当下FQuantToolBox默认的保存格式是.mat文件,可能有的朋友需要存成其他格式(.csv .xlsx .txt等)的文件进行调用,故编写了SaveData2File.m函数,一方面可以结合FQuantToolBox使用,将提取的股票、期货数据保存成您需要的格式,另一方面该函数也可以单独使用,可以将任何MATLAB数据(double型 cell型)快速的保存成其他格式文件(现支持保存成{'.txt','.dat','.csv','.xls','.xlsb','.xlsx','.xlsm'}等扩展名的文件)。查看FQuantStudio微信公众号历史消息或进入公众号后 输入'FQuantToolBox',可以查看FQuantToolBox相关文件。
SaveData2File.m源码
function [Status, Message] = SaveData2File(Data, FileName, ColNamesCell)
%% SaveData2File
% by LiYang_faruto
%% 输入输出预处理
Status = 1;
Message = [];
if nargin & 3 || isempty(ColNamesCell)
ColNamesCell = [];
if nargin & 2 || isempty(FileName)
FileName = 'OutData.xlsx';
if nargin & 1 || isempty(Data)
Status = 0;
Message = '缺少输入参数,请输入待保存的数据!';
disp(Message);
% ColNamesCell 处理
[Rlen, Clen] = size(Data);
if ~isempty(ColNamesCell)
tlen = length(ColNamesCell);
if tlen & Clen
for i = tlen+1:Clen
str = ['VarName',num2str(i)];
ColNamesCell{i} =
if tlen & Clen
ColNamesCell = ColNamesCell(1:Clen);
% FileName 检查处理
ind = find(FileName == '.', 1,'last');
if isempty(ind)
FileName = [FileName,'.xlsx'];
ind = find(FileName == '.', 1,'last');
ExtCell = {'.txt','.dat','.csv','.xls','.xlsb','.xlsx','.xlsm'};
ExtName = FileName(ind:end);
if ~ismember(ExtName, ExtCell)
Status = 0;
Message = '请检查输入的文件扩展名!(仅支持如下扩展名)';
disp(Message);
disp(ExtCell);
switch class( Data )
case 'double'
tCell = num2cell(Data);
if ~isempty( ColNamesCell )
tCell = [ColNamesCtCell];
Fun = @(x)( num2str(x) );
tCell = cellfun( Fun,tCell, 'UniformOutput', false);
T = cell2table(tCell);
writetable(T,FileName,'WriteVariableNames',false);
case 'cell'
if ~isempty( ColNamesCell )
tCell = [ColNamesCtCell];
Fun = @(x)( num2str(x) );
tCell = cellfun( Fun,tCell, 'UniformOutput', false);
T = cell2table(tCell);
writetable(T,FileName,'WriteVariableNames',false);
case 'struct'
Status = 0;
Message = '输入数据类型未知!请检查!';
disp(Message);
%% sub fun
测试脚本(测试数据来源,需要配合FQuantToolBox)
%% 获取股票代码列表测试
[StockList,StockListFull] = GetStockList_W
StockCodeDouble = cell2mat( StockList(:,3) );
save('StockList','StockList');
%% StockList SaveData2File
Data = StockL
FileName = 'StockList.csv';
ColNamesCell = {'股票名称','股票代码','股票代码(纯数字)'};
[Status, Message] = SaveData2File(Data, FileName, ColNamesCell);
Data = StockL
FileName = 'StockList.txt';
ColNamesCell = {'股票名称','股票代码','股票代码(纯数字)'};
[Status, Message] = SaveData2File(Data, FileName, ColNamesCell);
%% 获取指数代码列表
[IndexList] = GetIndexList_W
save('IndexList','IndexList');
%% IndexList SaveData2File
Data = IndexL
FileName = 'IndexList.csv';
ColNamesCell = {'名称','代码','代码(纯数字)'};
[Status, Message] = SaveData2File(Data, FileName, ColNamesCell);
%% 获取股票日线(除权除息)数据测试
StockCode = 'sh600030';
BeginDate = '';
EndDate = '';
[StockDataDouble,adjfactor] = GetStockTSDay_Web(StockCode,BeginDate,EndDate);
%% StockDataDouble SaveData2File
Data = StockDataD
FileName = 'StockDataTest.csv';
% FileName = [];
ColNamesCell = {'日期','开','高','低','收','量','额','复权因子'};
% ColNamesCell = [];
[Status, Message] = SaveData2File(Data, FileName, ColNamesCell);
%% 获取股票财务指标测试
StockCodeInput = '600588';
StockCodeInput = StockCode_G;
Year = '2014';
[FIndCell,YearList] = GetStockFinIndicators_Web(StockCodeInput,Year);
%% FIndCell SaveData2File
Data = FIndC
FileName = '财务指标Test.csv';
ColNamesCell = [];
[Status, Message] = SaveData2File(Data, FileName, ColNamesCell);
运行结果保存后的其他格式的文件
喜欢该文的人也喜欢00:47 提问
matlab中如何提取数据文件中的特定行和列?
一个数据文件,我想提取它的第一到第四列,以及第九列
和第1到500行,以及501到1000行?
按赞数排序
data = []; data = original(:,1:4);其他类似
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐MATLAB|矩阵数值导出txt数据文件 - 简书
MATLAB|矩阵数值导出txt数据文件
1. 问题描述
MATLAB的计算结果往往为矩阵(向量)的形式,后续的处理中需要导出txt、Excel文件进行后处理。
2. 技术背景
采用save命令。
3. 解决方案
4. 实施示例
4.1 生成数据
a = 0:0.01:
b = magic(6);
4.2 导出txt
save('a.txt','a','-ascii')
% 保存向量txt
save('b.txt','b','-ascii')
% 保存矩阵txt
导出结果:
5. 常见问题
还有一种较为复杂的方法,采用fprintf输出更可控:
t = 0:0.1:
s = sin(t);
fid = fopen('data.txt', 'w');
for iloop=1:length(s)
fprintf(fid, '%15.10f \r\n', s(iloop));
fclose(fid);
本文用时 15 m
写作源于思考,分享源于感恩。
一前言 特征值 奇异值 二奇异值计算 三PCA 1)数据的向量表示及降维问题 2)向量的表示及基变换 3)基向量 4)协方差矩阵及优化目标 5)方差 6)协方差 7)协方差矩阵 8)协方差矩阵对角划
一前言: PCA的实现一般有两种: 一种是用特征值分解去实现的,一种是...
MATLAB基本数据类型 双精度/单精度/整形 数据的范围 务必注意溢出的问题。 函数 类型检查 class isa(x, ‘double’) 范围检查 intmax, intmin realmax,realmin intmax(‘uint32’) 类型转换 int8(x)...
一:文件移动\复制 movefile % 从father目录中复制指定类型的文件到目录s中 copyfile movefile和copyfile的重要区别 指定路径下 单个文件夹data中所有图像文件 注: 上述的代码只能读取data文件夹中的图像,假设data中包含子文件...
被ansys读取和写入的命令麻烦了好久,写写我的学习心得,理解的不深,也不一定全对,献丑了。 比如对一个简支梁施加外部荷载,荷载时程数据在txt文件中。因为ansys读入文件对文件数据的格式要求很严格,所以这里结合matlab,利用matlab生成所需的荷载数据。 matl...
CUDA从入门到精通(零):写在前面 本文原版链接: 在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择。还有不到一年毕业,怕...
好自为之。 按照Anki大神的建议,本周我在Anki中增加了一份一建口诀,用以填充碎片时间,在碎片时间中只要不停的刷口诀即可,完整时间块里记忆口诀对应的内容。 今天开始刷书,对于书中已经背过的段落有种说不出的畅快,看标题知内容,将各个分散的知识点串成知识面,但效率也很低,接...
正如图所示,近些天我的种植情绪高涨,什么都想着来种下,所以每天都从菜市场带了点东西回来。除了最先开始的洋葱,大蒜和小葱!还有 : * 红豆 * 生姜 * 菠萝 * 芹菜 * 土豆 * 胡萝卜 在公司还有 * 豆瓣绿 * 文竹 * 铜钱草 其中胡萝卜已经先一步离去,它底子太差...
一 清晨,坐上公交车,戴上耳机,正准备悠闲的眯一会儿,被刺耳的争吵声吵醒。原来是乘客与司机发生矛盾,司机干脆把车停在路边不走了。事情的起因是乘客觉得司机让她多投了一元钱,要打电话投诉,还不停的嚷嚷。但是车上不少人都是赶着去市区上班的,后面的观众也都看不下去了,所幸司机停了几...
间隔年那段日子里,大多数时间没有旅伴,自拍是迫不得已的,也没用各种神器,全是脚架自拍的。或许并没有很漂亮很惊艳的角度和画面,但是都是踏踏实实的经历,一来借此题做个回顾,二来或许能给那些迫不得已自拍的朋友些许启发。 1.居中构图 从北京出发的第一天晚上,开头必须要留个纪念吧!...

我要回帖

更多关于 matlab读取txt文件到矩阵 的文章

 

随机推荐