数学建模社区-数学中国

标题: matlab文本文件导入问题 [打印本页]

作者: g瓶盖    时间: 2010-1-21 21:24
标题: matlab文本文件导入问题
我在matlab中导入了001到008共8个连续的文本文档,里面是30乘以18的数组,我在M文件里编了一个循环,希望能够一个一个读入,并分别做求和运算,但是在debug中点run之后出现了Error: The input character is not valid in MATLAB statements or expressions.请问大家这个是什么意思啊?
作者: 540982016044    时间: 2010-1-21 22:13
回复 1# g瓶盖
6 B. i- I" V3 ~) _& |
3 C. p4 J/ r$ ?4 {
+ n; _% p$ R1 x- u* p    我英语很差,不过金山词霸是这样翻译的
) m% v6 u0 z' R3 D9 K( e; r3 ]2 h“输入字符是无效的MATLAB中陈述或表达式”,; p1 T3 ]+ D2 P
最好能把源代码发上来
作者: g瓶盖    时间: 2010-1-21 22:45
D=zeros(30,18);
9 g: e: J) V" J8 a. q- `/ f# ]pathname=['D:\云南降水量\'];
$ ]) ~5 R- j& kfiles=dir([pathname '*.txt' ]);
9 ]. j/ {8 u" b  u[file_num,s]=size(files);2 @. W" V) h4 z( j( j8 t! V
for m=1:file_num8 R) L7 s+ o* N7 C/ g
    B=load([pathname files(m).name]);( `! m% x5 p. X4 D! B% A0 Y, m
    A=sum(B);
1 U6 i+ N2 u/ a( f  s    D(m,=A;
7 }0 h; Y: A9 T% i" d) Vend
作者: g瓶盖    时间: 2010-1-21 22:46
一共是有三十个文件,开始想先用八个试验一下,但是失败了。
作者: superboy0702    时间: 2010-1-21 23:00
不知道不知道不知道!!!!!!!!!!!!!!!!!
作者: legan    时间: 2010-1-21 23:50
你输入的“云南降水量”是中文的,matlab中是不能识别中文的(除非你在注释中写中文),建议你把“云南降水量”的文件名改为英文名
作者: leo12ok    时间: 2010-1-22 08:58
1. files=dir([pathname '*.txt' ]); 改为files = strcat(pathname,'*.txt'). F+ f) f6 h/ m; }
2. 你的错误在于 ‘*’不是合法的,用于表示文件名通配符不对。
作者: leo12ok    时间: 2010-1-22 08:59
1. files=dir([pathname '*.txt' ]); 改为files = strcat(pathname,'*.txt')
2 j( ]3 z0 {5 X' z* T, R2. 你的错误在于 ‘*’不是合法的,用于表示文件名通配符不对。
, v) z. b9 h( D* t2 x  G3. 中文路径名应该没有问题。
作者: leo12ok    时间: 2010-1-22 09:16
8楼我说错了,我试了下你的程序,发现命令没有问题,包括中文路径。' E  l8 q5 [1 U7 X6 e
但是因为我没有数据文件,所以自己建了几个测试文件。没有问题。  X# O4 R' t. I) y: Y" Z' @+ f1 x7 O
: V6 L9 ~5 `& R/ m& L
你再看看你的数据文件中是不是除了数据还有其他字符?
作者: g瓶盖    时间: 2010-1-22 11:14
回复 9# leo12ok % K) y' U2 _7 w+ \. g
  E' b' D; |' l6 q, i( ~  F2 I4 |! R

; a' `3 K6 G3 g7 j    ??? Error using ==> importdata at 59
& j1 g8 X) E; O. a$ h3 \Not enough input arguments., ?' v; i* j! R* k
??? 云南降水量    |
6 Y  O& Z+ t- y3 Y7 E* cError: The input character is not valid in MATLAB statements or expressions.
* V/ J. z5 Q( D9 k- \4 r% c
- `) l2 z( f  ^; w+ e. C还是晕晕的,搞不明白!
作者: g瓶盖    时间: 2010-1-22 11:15
回复 9# leo12ok
) d. y$ z9 L2 D+ i; X3 T9 u, V0 {) b8 e" c: z6 @3 J$ H' P7 Z
9 o7 r: W( E5 U
    error(nargchk(2, 3, 2)) returns an error
作者: leo12ok    时间: 2010-1-22 14:25
回复 10# g瓶盖 9 g4 ]3 o! x1 y  f3 a, G

  r% J4 N9 w3 d
* U( [, i. Y. I2 b9 H  h5 c2 a% n3 F, c& W; `' R
- ?; X9 S" v0 y, K  @" @2 i  j
1. 检查你的数据文件中是否有其他字符(非数据)。
! u  @( b% K+ C1 z& J1 s2. 可能是你的Matlab不支持中文,所以你的中文路径中有汉字可能Matlab不识别。
' s6 r% R$ Z* B$ h6 K' ~8 O5 k  y0 Q$ U3. 你的程序应该没有问题。我用Matlab2008b,路径是我的桌面(路径中是含有汉字的),使用你的程序,是能够正确找到文件名并读取数据的。
6 {' u% @  U2 E5 H" J0 a- V) C! e  d* T2 k- @. {' K4 j
4. 修改建议:将你的数据放在英文路径名下面试下,看是否还会出现这个问题。
作者: cnpcshangbo    时间: 2010-1-22 14:59
回复 1# g瓶盖 2 ]( z! ]6 d& R0 Q' V! w) E9 N
9 ^( r2 {4 v" n( }- z7 f

- f' Z# z+ H; t* M$ I  f    还有一种可能。就是你的文本文件中的
编码
是Matlab所不能识别的。你可以用附近上传其中的一个文件,我来看一下。
作者: g瓶盖    时间: 2010-1-22 15:05
回复 13# cnpcshangbo
3 G) v+ T* ~, U$ X( \; l- T7 R% S
' p3 E2 f: n! P1 D: f; R/ _: Z- h& }2 _" b0 w
    谢谢,我找到原因了,是文本名称出现了问题。
作者: g瓶盖    时间: 2010-1-22 15:07
回复 12# leo12ok
- E% l2 I0 _  a" m. w  D! n0 ], J0 D; ?

6 d+ e- J( s* @% |    非常感谢,我现在找到原因了!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5