小编Ale*_*lex的帖子

有没有办法在MATLAB中查看有多少位构成任意变量X?

我有一个任意变量X,我想应用一个函数并得到X位占用的输出.我知道我可以使用'whos',但我想要一个可用的X位数输出.

是否有任何(内置)函数可以在MATLAB中执行此操作?

matlab

4
推荐指数
1
解决办法
64
查看次数

这个涉及指针的算术表达式发生了什么?

这是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中添加指针.

请告诉我我错在哪里或我在这个解释中缺少什么.

这个程序的重点是存储字符.

c pointers

4
推荐指数
2
解决办法
355
查看次数

类型签名缺少附带绑定?

首先,我意识到还有其他几个类似的问题已在此处提出并回答.我看着他们并没有得到任何东西,所以我再问一遍.

这是我的代码的相关部分:

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'的类型签名缺少附带的绑定失败,模块加载:无.

为什么这样,我该如何解决?

haskell

2
推荐指数
1
解决办法
2481
查看次数

为什么MATLAB告诉我字符串'01'的长度是1?

我有一个单元格数组ab,在哪里ab(1)='01'.MATLAB给了我那个length('01')=2,但是那个length(ab(1))=1.为什么是这样?我怎么能不这样做呢?

string matlab cell-array

1
推荐指数
1
解决办法
73
查看次数

如何将一个句子(String)分解成一个列表([String])?

我有以下代码:

    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".然而,当我把"教父"放入函数时,显然它给出了这个字符串不包含在列表中,并再次吐出句子.

如何将"教父"这句话打破成单词列表,我可以单独测试然后再将它们重新组合在一个句子中?

输入"教父"的所需输出是"教父".

haskell

1
推荐指数
1
解决办法
677
查看次数

我的功能中的非详尽模式

以下函数编译但运行时输出非穷举模式错误

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可以为零?

haskell

1
推荐指数
1
解决办法
211
查看次数

我的函数中没有使用模式的非详尽模式?

我有以下功能:

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语句没有捕获的所有内容.谁能告诉我这里发生了什么?

haskell

0
推荐指数
1
解决办法
91
查看次数

函数应用于太多参数错误

当我尝试编译以下代码时:

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)

haskell

0
推荐指数
1
解决办法
1898
查看次数

标签 统计

haskell ×5

matlab ×2

c ×1

cell-array ×1

pointers ×1

string ×1