
fscanf Matlab简介
在一些应用程序中需要访问文本文件来进行操作,如从文本文件中读取数据,在文本文件中写入数据。为了从文本文件中读取数据,我们使用fscanf语句。fscanf是MatLab中的一个内置函数,用于从文本文件(扩展名为.txt)中读取数据。为了读取数据,首先,我们必须使用fopen语句打开该文件,并指定读取的访问模式类型为 "r"。
语法
fscanf Matlab的语法如下所示:
A = fscanf (fileID,formatSpec)
A = fscanf (fileID,formatSpec,sizeA)
[A,count] = fscanf (_)
如何进行Matlab fscanf?
为了从一个文本文件中读取数据,我们使用fscanf语句。对于打开该文件,使用fopen语句。在fopen语句中,我们写一个我们想打开的文本文件名,并指定一种访问模式。
使用fscanf语句读取一个文本文件的步骤。
- 步骤1: 首先,用fopen语句打开一个文件,并指定访问模式的类型。
- 第2步: 指定格式,如果需要,再指定sizeA。
- 第3步:然后,我们使用fscanf语句,显示读取的数据。
- 第4步:使用fclose语句关闭文件。
fscanf Matlab的例子
下面是fscanf Matlab的例子。
例子#1
让我们看看读取操作的例子;对于读取操作,我们取一个文本文件textfile1.txt,对于读取操作,首先,我们指定访问类型,为此我们使用fopen语句,我们在括号中取fopen,我们取我们要读取的文本文件名(filetext1.txt)和读取文件的访问类型,由'r'指定,用逗号将这两个参数分开。然后用我们定义为浮点数的'formatspec'来指定格式。然后我们使用fscanf语句;基本上,它是用来读取文本文件的。我们把fscanf放在括号里,写上fileID1(文本文件由文件标识符fileID1表示)和格式指定器,也就是我们前面定义的 formatSpec,这两个参数用逗号隔开。这就读取了存储在变量A1中的数据。然后我们用fclose语句关闭文件。
代码
fileID1 = fopen ('textfile1.txt','r') ;
formatSpec = '%s' ;
A1 = fscanf (fileID1 , formatSpec)
fclose (fileID1) ;
输出

例子 #2
让我们考虑另一个例子;在这个例子中,我们把一个整数作为浮点数,整数存储在x1变量中,而浮点数是通过使用rand函数创建的(rand函数返回一个随机的浮点数),这些浮点数存储在y1变量中。然后我们用fopen语句打开一个文件,然后用fprintf语句写入这些数字,然后用fclose语句关闭文件。然后我们用一个类型函数看到这些数据;类型函数用来显示内容的数据。然后我们用fopen语句再次打开一个文件,我们在读取'r'时指定访问模式的类型,然后我们把fopen返回的数据分配给fileID1;fileID1是一个打开文件的文件标识符。然后我们在一个格式指定器(formatSpec)上指定格式,然后是一个sizeA,sizeA必须是一个正整数。然后我们采取fscanf语句,在fscanf的括号中,取一个文件标识符(fileID1)、格式指定符(formatSpec)和一个sizeA,并将返回的读取数据存储在A1变量中。然后我们需要用fclose语句关闭那个打开的文件。然后我们只需用转置符号对A1进行转置。然后我们在命令窗口中看到一个结果。
代码
x1 = 1:1:5;
y1 = [x1;rand(1,5)];
fileID1 =fopen('num1.txt','w');
fprintf(fileID1,'%d %4.4f\n',y1);
fclose(fileID1);
type num1.txt
fileID1 = fopen('num1.txt','r');
formatSpec = '%d %f';
sizeA = [2 Inf];
A1 = fscanf(fileID1,formatSpec,sizeA)
fclose(fileID1);
A1 = A1'
输出

例子 #3
让我们看一个与fscanf语句有关的例子;在这个例子中,我们跳过一个字符串中的℃文本。我们在一个变量str1上取一个温度字符串。我们用fopen语句打开一个temp1.txt文件,并指定访问模式类型为写,这些fopen语句分配给文件标识符fileID1。然后我们用fprintf语句在temp1.txt文件上写入该温度字符串。然后我们用fclose语句关闭这个打开的文件。然后我们再次使用fopen语句打开该文件进行读取;在fopen中,我们指定读取 "r "的访问模式类型,然后将其分配给文件标识符fileID1。°C的ASCII码是176;这些被传递到度变量。然后我们采取fscanf语句;在fscanf中,我们采取一个打开的文件的标识符,在方括号中,我们采取一个整数的度数,这个度数只不过是℃,这些数据被分配给A1和count。A1是一个温度,在count中存储了一个摄氏度的数字。然后我们简单地用fclose语句关闭那个打开的文件。
代码
str1 = '75°C 60°C 74°C 69°C 55°C';
fileID1 = fopen('temp1.dat','w');
fprintf(fileID1,'%s',str1);
fclose(fileID1);
fileID1 = fopen('temp1.dat','r');
degrees = char(176);
[A1,count] = fscanf(fileID1, ['%d' degrees 'C'])
fclose(fileID1);
输出

结论
在这篇文章中,我们看到了fscanf的概念;基本上,fscanf是用于从文本文件中读取数据。然后,我们看到了与fscanf语句相关的语法,以及它在MatLab代码中的使用方法。此外,我们还看到了一些与fscanf语句有关的例子。