dreamstone 发表于 2010-4-22 15:18

textread的用法,大侠帮忙解惑

...
    = 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 编辑 ]

dreamstone 发表于 2010-4-22 16:57

回复 楼主 dreamstone 的帖子

不知道是什么原因,换了个指令,给读出来了,遇到类似问题的朋友可以尝试下fscanf,大虾能给解释下为什么?
clear all
=uigetfile('*.txt');
inputfilename=;
fid=fopen(inputfilename,'r');
if fid==-1
    'cannot open input file.'
    return;
end
data=fscanf(fid,'%f %f',);
% data=str2num(char(data));
data=data';
t= data(:,1)
x= data(:,2)

ChaChing 发表于 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)

dreamstone 发表于 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]
查看完整版本: textread的用法,大侠帮忙解惑