我有一个任意变量X,我想应用一个函数并得到X位占用的输出.我知道我可以使用'whos',但我想要一个可用的X位数输出.
是否有任何(内置)函数可以在MATLAB中执行此操作?
这是C中的代码:
#define ALLOCSIZE 1000 /* size of available space */
static char allocbuf[ALLOCSIZE]; /* storage for alloc */
static char *allocp = allocbuf; /* next free position */
char *alloc(int n) /* return pointer to n characters */
{
if (allocbuf + ALLOCSIZE - allocp >= n) { /* it fits */
...
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白以下表达式中发生了什么:
allocbuf + ALLOCSIZE - allocp >= n
Run Code Online (Sandbox Code Playgroud)
我知道allocbuf作为数组名称相当于指向第一个元素和allocbuf [0]的指针,显然allocp是一个指针,最后ALLOCSIZE是一个简单的int.因此,将ALLOCSIZE添加到allocbuff会给出allocbuff的ALLOCSIZE索引元素,它也是一个指针.但是从指针和allocbuf [ALLOCSIZE]中减去指针allocp是我丢失的地方.我甚至不确定可以在C中添加指针.
请告诉我我错在哪里或我在这个解释中缺少什么.
这个程序的重点是存储字符.
首先,我意识到还有其他几个类似的问题已在此处提出并回答.我看着他们并没有得到任何东西,所以我再问一遍.
这是我的代码的相关部分:
titlesOfMoviesSatisfying :: (Movie -> Bool) -> [Movie] -> [Title]
titlesOfSatisying f movieDB = map check (zip movieDB (map f movieDB))
Run Code Online (Sandbox Code Playgroud)
Movie和Title都是我刚才在代码中定义的数据类型.当我执行>> let b = map check(zip movieDB(map f movieDB))时,我得到:输入b作为[Title],这正是我想要的.我有:键入movieDB作为[电影]和:键入f作为电影 - >布尔.所以一切似乎都应该如此.但是当我尝试编译上面的代码时,我得到以下内容:
Example7.hs:65:1:`titlesOfMoviesSatisfying'的类型签名缺少附带的绑定失败,模块加载:无.
为什么这样,我该如何解决?
我有一个单元格数组ab,在哪里ab(1)='01'.MATLAB给了我那个length('01')=2,但是那个length(ab(1))=1.为什么是这样?我怎么能不这样做呢?
我有以下代码:
realWord :: String -> String
realWord s = if elem (map toLower s) ["the","a","of","in","at"] then "" else (map toLower s)
Run Code Online (Sandbox Code Playgroud)
这是为了测试像"教父"这样的字符串是否包含任何数量的琐碎单词,例如"the".然而,当我把"教父"放入函数时,显然它给出了这个字符串不包含在列表中,并再次吐出句子.
如何将"教父"这句话打破成单词列表,我可以单独测试然后再将它们重新组合在一个句子中?
输入"教父"的所需输出是"教父".
以下函数编译但运行时输出非穷举模式错误
hufMerge :: CodeTable -> CodeTable -> CodeTable
hufMerge [(x,a)] [(y,b)] = foldr (:) (map add0 [(x,a)]) (map add1 [(y,b)])
hufMerge [(x,a)] [] = map add0 [(x,a)]
hufMerge [] [(y,b)] = map add1 [(y,b)]
hufMerge [] [] = []
Run Code Online (Sandbox Code Playgroud)
哪里
type CodeTable = [(Char,[Integer])]
Run Code Online (Sandbox Code Playgroud)
我没有看到错误的来源,我是否必须做2 ^ 4个案例,其中[(x,a)] [(y,b)],x,a,y或b可以为零?
我有以下功能:
union :: (Eq a) => Set1 a -> Set1 a -> Set1 a
union (MakeSet (x:xs)) (MakeSet (y:ys)) = if (member (MakeSet (y:ys)) x) && (not (isEmpty (MakeSet (x:xs))))
then union (MakeSet xs) (MakeSet (y:ys))
else if (not (member (MakeSet (y:ys)) x)) && (not (isEmpty (MakeSet (x:xs))))
then union (MakeSet xs) (insert x (MakeSet (y:ys)))
else MakeSet (y:ys)
Run Code Online (Sandbox Code Playgroud)
它编译,但当我用参数执行它时,我得到该函数具有非详尽的模式.
首先,为什么它认为我使用模式?我只使用条件语句,并且我有一个else语句,它应该捕获if then和else if语句没有捕获的所有内容.谁能告诉我这里发生了什么?
当我尝试编译以下代码时:
matcHelp :: String -> Stack Char -> Stack Char
matcHelp b = mtHelp b (MakeS([])) (MakeS([])) where
mtHelp b result1 result2 =
if (b == [])
then result1 result2
else if head b == '('
then mtHelp (tail b) (push '(' result1) (result2)
else if head b == '['
then mtHelp (tail b) (result1) (push '[' result2)
else if (head b == ')')
then mtHelp (tail b) (popOut result1) (result2)
else if (head b == ']')
then mtHelp (tail …Run Code Online (Sandbox Code Playgroud)