matlab中如何读入文本文件中指定行的一组数据?例如: 读入下列数据: 1,2,3,4
发布网友
发布时间:2022-05-01 19:05
我来回答
共3个回答
热心网友
时间:2023-10-24 04:54
法均相同的命令及语句
命令及函数名 用途 用法
与数组定义相关的
DATA 与数组有关的 相同
READ 与数组有关的 相同
RESTORE 与数组有关的 相同
DIM 与数组有关的 相同
流程控制
IF...THEN...ELSE 选择结构语句 相同
IF..THEN... 选择结构语句 相同
WHILE..WEND 循环控制 相同
FOR...TO..STEP...NEXT 循环控制 相同
DEF FN 定义函数 相同
GOSUB...RETURN 分支到当前程序模块中的子程序 相同
字符串处理
ABS() 返回数的绝对值 相同
ATN() 返回用弧度表示的正切值 相同
COS() 返回弧度的余弦 相同
EXP() 返回e的指定次幂 相同
INT() 返回不大于给定数的最大整数 相同
LOG() 返回一个数值的自然对数 相同
RND() 产生0-1之间的随机数 相同
SGN() 返回数的符号值 相同
SIN() 返回弧度的下弦 相同
SQR() 返回数的平方根 相同
TAN() 返回弧度的正切 相同
ASC() 返回字符串每一个字符的ASCII码 相同
CHR$() 返回指定的ASCII码对应的字符 相同
HEX$() 返回十进制数的十六进制的字符串 相同
LEFT$() 返回从字符串左边开始的的指定数目的字符 相同
LEN() 返回字符的长度 相同
MID$() 返回从字符串指定位置开始的指定数目字符 相同
RIGHT$() 返回从字符串右端开始的指定数目的字符 相同
STR$() 返回把数值数据转换为字符后的字符串 相同
INVERSE 反显字符 相同
VAL() 把一个数字字符转换为相应的数值 相同
输入/输出相关命令
CLS 清除屏幕 相同
INKEY$ 从键盘读入一个字符 相同
INPUT 从键盘读取输入 相同
LOCATE 把文件光标定位到指定的行,列 相同
SPC() 在PRINT语句中跳过指定个数的空格 相同
WRITE 把数据输出到屏幕或文件 相同
图形
CIRCLE 画圆 相同
LINE 画线 相同
BOX 画矩形 相同
DRAW 画点 不同
声音
PLAY 演奏指定的音乐 相同
BEEP 使扬声器发出一个短促的声音 相同
文件
OPEN 打开文件
INPUT# 从顺序文件读取一个字符串 相同
GET 从随机和二进制文件读取数据 相同
PUT 把数据写入随机或二进制文件 相同
LOF 返回随机文件长度 相同
CLOSE 关闭文件 相同
EOF() 当文件指针位于文件结尾时返回-1 相同
其它
TRACE 单步跟踪程序执行 相同
LET 将变量赋值
SWAP 交换两下变量的值 相同
GVBASIC语言知识要点
2.1文曲星的屏幕特点
每行显示汉字或全角字符: 10 个
每行显示英文或半角字符: 20 个
液晶点阵: 160*80
2.2 GVBASIC中的符号定义
2.2 GVBASIC中的符号定义与其它BASIC版本完全一样.
1.数值表达式
% 整型变量
$ 字符串
+ 加法运算符
- 减法运算符
* 乘法运算符
/ 除法运算符
^ 乘方运算符
2.关系运算符
= 等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
<> 不等于
3.逻辑运算符
AND 逻辑与
OR 逻辑或
NOT 逻辑非
4.特殊符号
; 控制PRINT语句以紧凑格式输出
, 控制PRINT语句以换行格式输出
: 分隔一行中并联语句
? INPUT语句提示符
] GVBASIC命令提示符(表示GVBASIC处于编辑状态并等待用户输入命令)
2.3 GVBASIC语言中定义了哪几种数据类型.
解答: GVBASIC定义了两种数据类型
(1)常规整型数: 范围从-32768到+32767, 通常正号可以省略,类型声明符为%, 例如: A% 就表示变量为整型
(2)实型变量: 范围从-10E+30,10E+30
2.4 GVBASIC其它规定
变量名最长: 16
最大行号: 9999
2.5 变量,数组定义
LET 将值赋给变量
SWAP 交换两下变量的值
DIM 定义数组
READ 将DATA语句中的下一个数据项赋给指定的变量
DATA 指定要读入数组的一组数据
RESTORE 指定为读入数据所用的下一个DATA语句
范例:随机产生10个二位整数,放入数组a,从中选出一个最大的和最小的数打印出来.(数组的应用)
]10 CLS
]20 DIM A(10)
]30 m=100
]40 n=-100
]50 FOR I=1 TO 10
]60 A(I)=INT(RND*90)+10
]70 PRINT A(I);
]80 NEXT I
]90 FOR I=1 TO 10
]100 IF A(I)>N THEN N=A(I)
]110 IF A(I)<M THEN m=A(I)
]120 NEXT I
]130 PRINT "最大数 N=";n,"最小数 M=";m
]140 END
2.6 流程控制
GVBASIC提供了较常用的几种流程控制语句
GOTO
IF...THEN/GOTO...ELSE
ON...GOTO n1,n2,n3...
范例:1.编制程序将24小时计时法转成12小时计时法
]10 REM 转换计时法
]20 INPUT HOUR24,MINTUE
]30 IF HOUR24<0 OR HOUR24>23 THEN 60
]40 IF HOUR24<=12 THEN HOUR12=HOUR24: PRINT "现在时间是:";HOUR12;":";MINTUE;"am"
]50 IF HOUR24>12 THEN HOUR12=INT(HOUR24/2): PRINT HOUR12;MINTUE;"pm"
]60 END
2.7循环结构语句
WHILE...WEND 当给定的条件为真时,执行循环语句中的循环体
FOR...NEXT 根据指定的次数执行循环体
范例1:
打印九九乘法表.
10 REM 乘法表
20 FOR A=1 TO 9
30 FOR B=A TO 9
40 PRINT A;"*";b;"=";A*B,
50 NEXT B
60 NEXT A
70 END
2.8 过程及函数
DEF FN 定义用户自定义函数
GOSUB...RETURN 分运支到当前程序模块中的了例程
ON...GOSUB
2.9 数*算函数和语句
ABS() 返回数的绝对值
ATN() 返回用弧度表示的反正切值
COS() 返回弧度的余弦
EXP() 返回e的指定次幂
INT() 返回不大于给定数的最大整数
LOG() 返回一个数值的自然对数
RND() 产生0-1之间的随机数
SGN() 返回数的符号值
SIN() 返回弧度的正弦
SQR() 返回数的平方根
TAN() 返回弧度的正切
2.10 字符串
一,字符串常量
字符是指单个字母,数字或其他特殊符号及文曲星中的图形,字符串是系统允许使用的若干个字符构成的序列,也称为字符串常量.一个字符串一般是双引号括起来的一串字符.
二 字符串大小的比
在计算机内部(文曲星内部),所有字符都是以ASCII码表示的,比较两下字符的大小,就是比较它们的ASCII码值的大小
三 字符串比较的规律
1.同规格的字母比较,按字母的顺序排,后面的大。
2.大小写字母的比较,小写字母大于大写字母.
3.数字字符比较,按数值的大小排,数值大的大.
4.字母与数字比较,数字(0-9)的代码均小于字母(A-Z)的代码
5.空格比数字,标点,字母等常见符号都小.
四 字符串处理的函数及语句
GVBASIC语言知识要点:
ASC() 返回字符或字符串第一个字符的ASCII码
CHR$() 返回指定的ASCII码对应的字符
LEFT$() 返回从字符串左边开始的指定数目的字符
LEN() 返回字符串的长度
MID$() 返回从字符串指定位置开始的指定数目字符
RIGHT$() 返回从字符串右端开始的指定数目的字符
STR$() 返回把数值型数据转换为字符型后的字符串
VAL() 把一个数字字符串转换为相应的数值
范例:
输入一串字符,将它的内容按下列的密码规则转换为明码输出
密码: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
明码: F L Q C O S N Z E Y V R X H T B W A J D M I G U P K
其余字符都不变换
例如: 输入: V BVZI VO KILJ UXDN
输出: I LIKE IT VERY MUCH
程序如下
]10 CLS
]20 X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]30 Y$="FLQCOSNZEYVRXHTBWAJDMIGUPK"
]40 INPUT Z$
]50 FOR I=1 TO LEN(Z$) '将该密码从左到右逐个处理
]60 A$=MID$(Z$,I,1) '取出第I个字符放入A$中
]70 FOR J=1 TO 26 ' 寻找密码字符在X$中的位置
]80 IF A$=MID$(X$,J,1) THEN 100
]90 NEXT J
]100 IF A$=MID$(X$,J,1) THEN PRINT MID$(Y$,J,1); ELSE PRINT A$; '若找到,转明输出,则否显示原字符
]110 NEXT I
]120 END
]RUN
如果输入: V BVZI VO KILJ UXDN
输出结果: I LIKE IT VERY MUCH
2.11简单输入/输出
CLS 清除屏幕
INKEY$ 从键盘读取一个字符
INPUT 从键盘读取输入
LOCATE 把光标定位到指定的行,列
PRINT 从屏幕当前光标位置显示数值,字符串或数据
SPC() 在PRINT语句中跳过指定个数的空格
WRITE 把数据输出到屏幕或文件
范例: 产生一个动态的字符
]10 FOR I=1 TO 10
]20 N=I
]30 LOCATE 3,N
]40 PRINT "GO!"
]50 FOR J=1 TO 100 /*空循环起延时作用*/
]60 NEXT J
]70 CLS /*擦除运动轨迹*/
]80 NEXT I
]90 END
RUN /*显示从左到右运动GO!*/
2.12 图形
CIRCLE 在屏幕指定位置画圆
DRAW 在屏幕指定位置画点
LINE 画直线或矩形
BOX 画矩形
ELLIPSE 画椭圆
2.13 声音
BEEP 使扬声器发出一个短促的声音
PLAY 演奏指定的音乐
2.14 文件
EOF() 当文件指针位于文件结尾时返回-1(真)
INPUT # 从顺序文件中读取数据
OPEN 打开文件
WRITE 把数据写入顺序文件
CLOSE 关闭数据文件
LSET 向缓冲区分配的变量赋值,并做左对齐调整
LOF 返回随机文件长度
GET 从指定文件读取指定记录放入缓冲区
PUT 向指定文件的指定记录写入缓冲区内容
FIELD 指定缓冲区大小分配缓冲区变量
COPY 复制文件
范例:
建立一个数据文件,并用WRITE#语句将5个人的姓名和年龄输出给该文件,然后程序将该文件关闭,再次将它打开用于输入,并把这5个记录读回到程序中,并显示到屏幕上.
]10 CLS
]20 OPEN "TEST.TXT" FOR OUTPUT AS #1
]30 PRINT "输入5个姓名,年龄"
]40 FOR I=1 TO 5
]50 INPUT NAME$,AGE%
]60 WRITE #1,NAME$,AGE%
]70 NEXT I
]80 CLOSE #1
]90 OPEN "TEST.TXT" FOR INPUT AS #1
]100 PRINT "你输入的姓名,年龄如下:"
]110 FOR I=1 TO 5
]120 INPUT #1,NAME$,AGE%
]130 PRINT NAME$,AGE%;
]140 NEXT I
]150 CLOSE #1
]160 END
这里有详细内容:
热心网友
时间:2023-10-24 04:55
fopen, fget试试这些函数
如果除了一个表头外全是数据,可以尝试importdata,将结果读入一个矩阵,然后再矩阵中寻找你需要的数据。
热心网友
时间:2023-10-24 04:55
a=load(filename)
热心网友
时间:2023-10-24 04:54
法均相同的命令及语句
命令及函数名 用途 用法
与数组定义相关的
DATA 与数组有关的 相同
READ 与数组有关的 相同
RESTORE 与数组有关的 相同
DIM 与数组有关的 相同
流程控制
IF...THEN...ELSE 选择结构语句 相同
IF..THEN... 选择结构语句 相同
WHILE..WEND 循环控制 相同
FOR...TO..STEP...NEXT 循环控制 相同
DEF FN 定义函数 相同
GOSUB...RETURN 分支到当前程序模块中的子程序 相同
字符串处理
ABS() 返回数的绝对值 相同
ATN() 返回用弧度表示的正切值 相同
COS() 返回弧度的余弦 相同
EXP() 返回e的指定次幂 相同
INT() 返回不大于给定数的最大整数 相同
LOG() 返回一个数值的自然对数 相同
RND() 产生0-1之间的随机数 相同
SGN() 返回数的符号值 相同
SIN() 返回弧度的下弦 相同
SQR() 返回数的平方根 相同
TAN() 返回弧度的正切 相同
ASC() 返回字符串每一个字符的ASCII码 相同
CHR$() 返回指定的ASCII码对应的字符 相同
HEX$() 返回十进制数的十六进制的字符串 相同
LEFT$() 返回从字符串左边开始的的指定数目的字符 相同
LEN() 返回字符的长度 相同
MID$() 返回从字符串指定位置开始的指定数目字符 相同
RIGHT$() 返回从字符串右端开始的指定数目的字符 相同
STR$() 返回把数值数据转换为字符后的字符串 相同
INVERSE 反显字符 相同
VAL() 把一个数字字符转换为相应的数值 相同
输入/输出相关命令
CLS 清除屏幕 相同
INKEY$ 从键盘读入一个字符 相同
INPUT 从键盘读取输入 相同
LOCATE 把文件光标定位到指定的行,列 相同
SPC() 在PRINT语句中跳过指定个数的空格 相同
WRITE 把数据输出到屏幕或文件 相同
图形
CIRCLE 画圆 相同
LINE 画线 相同
BOX 画矩形 相同
DRAW 画点 不同
声音
PLAY 演奏指定的音乐 相同
BEEP 使扬声器发出一个短促的声音 相同
文件
OPEN 打开文件
INPUT# 从顺序文件读取一个字符串 相同
GET 从随机和二进制文件读取数据 相同
PUT 把数据写入随机或二进制文件 相同
LOF 返回随机文件长度 相同
CLOSE 关闭文件 相同
EOF() 当文件指针位于文件结尾时返回-1 相同
其它
TRACE 单步跟踪程序执行 相同
LET 将变量赋值
SWAP 交换两下变量的值 相同
GVBASIC语言知识要点
2.1文曲星的屏幕特点
每行显示汉字或全角字符: 10 个
每行显示英文或半角字符: 20 个
液晶点阵: 160*80
2.2 GVBASIC中的符号定义
2.2 GVBASIC中的符号定义与其它BASIC版本完全一样.
1.数值表达式
% 整型变量
$ 字符串
+ 加法运算符
- 减法运算符
* 乘法运算符
/ 除法运算符
^ 乘方运算符
2.关系运算符
= 等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
<> 不等于
3.逻辑运算符
AND 逻辑与
OR 逻辑或
NOT 逻辑非
4.特殊符号
; 控制PRINT语句以紧凑格式输出
, 控制PRINT语句以换行格式输出
: 分隔一行中并联语句
? INPUT语句提示符
] GVBASIC命令提示符(表示GVBASIC处于编辑状态并等待用户输入命令)
2.3 GVBASIC语言中定义了哪几种数据类型.
解答: GVBASIC定义了两种数据类型
(1)常规整型数: 范围从-32768到+32767, 通常正号可以省略,类型声明符为%, 例如: A% 就表示变量为整型
(2)实型变量: 范围从-10E+30,10E+30
2.4 GVBASIC其它规定
变量名最长: 16
最大行号: 9999
2.5 变量,数组定义
LET 将值赋给变量
SWAP 交换两下变量的值
DIM 定义数组
READ 将DATA语句中的下一个数据项赋给指定的变量
DATA 指定要读入数组的一组数据
RESTORE 指定为读入数据所用的下一个DATA语句
范例:随机产生10个二位整数,放入数组a,从中选出一个最大的和最小的数打印出来.(数组的应用)
]10 CLS
]20 DIM A(10)
]30 m=100
]40 n=-100
]50 FOR I=1 TO 10
]60 A(I)=INT(RND*90)+10
]70 PRINT A(I);
]80 NEXT I
]90 FOR I=1 TO 10
]100 IF A(I)>N THEN N=A(I)
]110 IF A(I)<M THEN m=A(I)
]120 NEXT I
]130 PRINT "最大数 N=";n,"最小数 M=";m
]140 END
2.6 流程控制
GVBASIC提供了较常用的几种流程控制语句
GOTO
IF...THEN/GOTO...ELSE
ON...GOTO n1,n2,n3...
范例:1.编制程序将24小时计时法转成12小时计时法
]10 REM 转换计时法
]20 INPUT HOUR24,MINTUE
]30 IF HOUR24<0 OR HOUR24>23 THEN 60
]40 IF HOUR24<=12 THEN HOUR12=HOUR24: PRINT "现在时间是:";HOUR12;":";MINTUE;"am"
]50 IF HOUR24>12 THEN HOUR12=INT(HOUR24/2): PRINT HOUR12;MINTUE;"pm"
]60 END
2.7循环结构语句
WHILE...WEND 当给定的条件为真时,执行循环语句中的循环体
FOR...NEXT 根据指定的次数执行循环体
范例1:
打印九九乘法表.
10 REM 乘法表
20 FOR A=1 TO 9
30 FOR B=A TO 9
40 PRINT A;"*";b;"=";A*B,
50 NEXT B
60 NEXT A
70 END
2.8 过程及函数
DEF FN 定义用户自定义函数
GOSUB...RETURN 分运支到当前程序模块中的了例程
ON...GOSUB
2.9 数*算函数和语句
ABS() 返回数的绝对值
ATN() 返回用弧度表示的反正切值
COS() 返回弧度的余弦
EXP() 返回e的指定次幂
INT() 返回不大于给定数的最大整数
LOG() 返回一个数值的自然对数
RND() 产生0-1之间的随机数
SGN() 返回数的符号值
SIN() 返回弧度的正弦
SQR() 返回数的平方根
TAN() 返回弧度的正切
2.10 字符串
一,字符串常量
字符是指单个字母,数字或其他特殊符号及文曲星中的图形,字符串是系统允许使用的若干个字符构成的序列,也称为字符串常量.一个字符串一般是双引号括起来的一串字符.
二 字符串大小的比
在计算机内部(文曲星内部),所有字符都是以ASCII码表示的,比较两下字符的大小,就是比较它们的ASCII码值的大小
三 字符串比较的规律
1.同规格的字母比较,按字母的顺序排,后面的大。
2.大小写字母的比较,小写字母大于大写字母.
3.数字字符比较,按数值的大小排,数值大的大.
4.字母与数字比较,数字(0-9)的代码均小于字母(A-Z)的代码
5.空格比数字,标点,字母等常见符号都小.
四 字符串处理的函数及语句
GVBASIC语言知识要点:
ASC() 返回字符或字符串第一个字符的ASCII码
CHR$() 返回指定的ASCII码对应的字符
LEFT$() 返回从字符串左边开始的指定数目的字符
LEN() 返回字符串的长度
MID$() 返回从字符串指定位置开始的指定数目字符
RIGHT$() 返回从字符串右端开始的指定数目的字符
STR$() 返回把数值型数据转换为字符型后的字符串
VAL() 把一个数字字符串转换为相应的数值
范例:
输入一串字符,将它的内容按下列的密码规则转换为明码输出
密码: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
明码: F L Q C O S N Z E Y V R X H T B W A J D M I G U P K
其余字符都不变换
例如: 输入: V BVZI VO KILJ UXDN
输出: I LIKE IT VERY MUCH
程序如下
]10 CLS
]20 X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]30 Y$="FLQCOSNZEYVRXHTBWAJDMIGUPK"
]40 INPUT Z$
]50 FOR I=1 TO LEN(Z$) '将该密码从左到右逐个处理
]60 A$=MID$(Z$,I,1) '取出第I个字符放入A$中
]70 FOR J=1 TO 26 ' 寻找密码字符在X$中的位置
]80 IF A$=MID$(X$,J,1) THEN 100
]90 NEXT J
]100 IF A$=MID$(X$,J,1) THEN PRINT MID$(Y$,J,1); ELSE PRINT A$; '若找到,转明输出,则否显示原字符
]110 NEXT I
]120 END
]RUN
如果输入: V BVZI VO KILJ UXDN
输出结果: I LIKE IT VERY MUCH
2.11简单输入/输出
CLS 清除屏幕
INKEY$ 从键盘读取一个字符
INPUT 从键盘读取输入
LOCATE 把光标定位到指定的行,列
PRINT 从屏幕当前光标位置显示数值,字符串或数据
SPC() 在PRINT语句中跳过指定个数的空格
WRITE 把数据输出到屏幕或文件
范例: 产生一个动态的字符
]10 FOR I=1 TO 10
]20 N=I
]30 LOCATE 3,N
]40 PRINT "GO!"
]50 FOR J=1 TO 100 /*空循环起延时作用*/
]60 NEXT J
]70 CLS /*擦除运动轨迹*/
]80 NEXT I
]90 END
RUN /*显示从左到右运动GO!*/
2.12 图形
CIRCLE 在屏幕指定位置画圆
DRAW 在屏幕指定位置画点
LINE 画直线或矩形
BOX 画矩形
ELLIPSE 画椭圆
2.13 声音
BEEP 使扬声器发出一个短促的声音
PLAY 演奏指定的音乐
2.14 文件
EOF() 当文件指针位于文件结尾时返回-1(真)
INPUT # 从顺序文件中读取数据
OPEN 打开文件
WRITE 把数据写入顺序文件
CLOSE 关闭数据文件
LSET 向缓冲区分配的变量赋值,并做左对齐调整
LOF 返回随机文件长度
GET 从指定文件读取指定记录放入缓冲区
PUT 向指定文件的指定记录写入缓冲区内容
FIELD 指定缓冲区大小分配缓冲区变量
COPY 复制文件
范例:
建立一个数据文件,并用WRITE#语句将5个人的姓名和年龄输出给该文件,然后程序将该文件关闭,再次将它打开用于输入,并把这5个记录读回到程序中,并显示到屏幕上.
]10 CLS
]20 OPEN "TEST.TXT" FOR OUTPUT AS #1
]30 PRINT "输入5个姓名,年龄"
]40 FOR I=1 TO 5
]50 INPUT NAME$,AGE%
]60 WRITE #1,NAME$,AGE%
]70 NEXT I
]80 CLOSE #1
]90 OPEN "TEST.TXT" FOR INPUT AS #1
]100 PRINT "你输入的姓名,年龄如下:"
]110 FOR I=1 TO 5
]120 INPUT #1,NAME$,AGE%
]130 PRINT NAME$,AGE%;
]140 NEXT I
]150 CLOSE #1
]160 END
这里有详细内容:
热心网友
时间:2023-10-24 04:55
fopen, fget试试这些函数
如果除了一个表头外全是数据,可以尝试importdata,将结果读入一个矩阵,然后再矩阵中寻找你需要的数据。
热心网友
时间:2023-10-24 04:55
a=load(filename)