【发布时间】:2015-02-09 04:25:34
【问题描述】:
我必须写一个 MATLAB 函数,描述如下:
函数计数 = letterStatistics(filename, allowedChar, N)
这个函数应该打开一个由文件名指定的文本文件并读取其全部内容。将解析内容,以便删除任何不在 allowedChar 中的字符。最后,它将返回解析文本中所有 N 符号组合的计数。这个函数应该存储在一个文件名“letterStatistics.m”中,我根据教授的讲义列出了一些命令和函数应该如何组织的东西:
- 通过将 N 的默认值设置为 1 来开始函数:
一个。用户指定 N 为 0 或负值。
b.用户没有将参数 N 传递给函数,即 counts = letterStatistics(filename, allowedChar)
使用 fopen 函数,打开文件文件名以文本模式读取。
使用函数 fscanf,将打开文件的所有内容读入字符串变量。
我知道有一个 MATLAB 函数可以将字符串中的所有字母转换为小写。由于我的分析将忽略大小写,因此我必须在文本字符串上使用此函数。
按如下方式解析此字符串变量(使用逻辑索引或正则表达式 - 不要使用 for 循环):
一个。我们希望删除所有换行符而不发生这种情况:
例如
在我年轻和脆弱的岁月里,父亲给了我一些建议,从那以后我一直在脑海中反复思考。
在我更年轻、更脆弱的岁月里,父亲给了我一些建议,从那以后我一直在脑海中反复思考。
用一个空格替换所有换行符(特殊字符 \n):' '。
b.我们将带连字符的单词视为两个单独的单词,因此对连字符“-”执行相同的操作。
c。删除任何不在 allowedChar 中的字符。提示:使用带有空字符串 '' 的 regexprep 作为替换的参数。
d。任何两个或多个空格的序列都应替换为单个空格。
使用提供的 permsRep 函数,在 allowedChar 中创建所有可能的 N 符号组合的矩阵。
使用 strfind 函数,将已解析文本中的所有 N 符号组合计数到数组计数中。不要像在 C 程序中那样遍历已解析文本中的每个字符。
使用 fclose 关闭打开的文件。
这是我的问题:如您所见,我已经列出了函数是什么、它应该做什么以及使用哪些命令(fclose 等)。问题是我知道关闭文件涉及使用'fclose',但除此之外我不确定如何执行#8。整个函数创建也是如此。我对如何使用什么命令创建一个函数有一个模糊的想法,但我无法生成实际的代码。我应该如何开始?任何指导/提示将不胜感激,因为我遇到了程序员的障碍并且无法开始!
【问题讨论】:
-
只需使用文档中的
fclose,没有什么棘手的。没有人会为您编写代码,只需开始执行您编写的代码即可。尝试N=1;设置N的值并从那里开始。
标签: string matlab function matrix