声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3402|回复: 3

[编程技巧] textread的用法,大侠帮忙解惑

[复制链接]
发表于 2010-4-22 15:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
[data1,data2]...
    = textread(['C:\Documents and Settings\Administrator\桌面\270.txt'],'%s %s %*[^\n]');
a= str2num(char(data1));
b= str2num(char(data2));
为什么读出的a是空的?,b是读对了;
而且读其他文档没有出现过这种情况

??? Error using ==> plot
Vectors must be the same lengths.
Error in ==> srs150g at 9
plot(a,b);
>> a
a=
     []

[ 本帖最后由 dreamstone 于 2010-4-22 15:42 编辑 ]

270.txt

63.45 KB, 下载次数: 4

回复
分享到:

使用道具 举报

 楼主| 发表于 2010-4-22 16:57 | 显示全部楼层

回复 楼主 dreamstone 的帖子

不知道是什么原因,换了个指令,给读出来了,遇到类似问题的朋友可以尝试下fscanf,大虾能给解释下为什么?
clear all
[inputname,inputpath]=uigetfile('*.txt');
inputfilename=[inputpath,inputname];
fid=fopen(inputfilename,'r');
if fid==-1
    'cannot open input file.'
    return;
end
data=fscanf(fid,'%f %f',[2,inf]);
% data=str2num(char(data));
data=data';
t= data(:,1)
x= data(:,2)
发表于 2010-4-26 01:08 | 显示全部楼层

回复 楼主 dreamstone 的帖子

以前没用过textraed, 感觉好奇help了下! 初看真没发现问题所在! 老方法一步一步试!
LZ有无发现270.txt仅有3073*2的资料, 但textread读入后data1/data2竟有3074*1 !?
仔细观察LZ的资料3074行是有空格! 而LZ使用%s%s读入, 以致data1(end)有空格文字, str2num即会出错!
试试比较其差异
data1(end), data2(end)
 楼主| 发表于 2010-4-26 20:05 | 显示全部楼层

回复 板凳 ChaChing 的帖子

明白了,谢谢chaching大哥,确实是空格惹得祸。char有这么一句
S = char(t1, t2, t3, ...) forms the character array S containing the text strings T1, T2, T3, ... as rows, automatically padding each string with blanks to form a valid matrix. Each text parameter, Ti, can itself be a character array. This allows the creation of arbitrarily large character arrays. Empty strings are significant.
自己没好好读,看了您的话,确实有较深的感触,help一定要好好读

[ 本帖最后由 ChaChing 于 2010-4-26 20:34 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 23:25 , Processed in 0.074046 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表