it says error using assert, assertion failed and error in iuntitled (line 10) assert(ischar(in))
40 次查看(过去 30 天)
显示 更早的评论
error using assert
Assertion failed
Error in iuntitled (line 10)
assert(ischar(in))
3 个评论
回答(2 个)
Geoff Hayes
2022-6-17
@Ian - as per the function comment, Encode a single character i. I suspect that you are passing something else i.e. a numeric value like
>> encodeCharacter(42)
Error using encodeCharacter (line 8)
Assertion failed.
Try doing
>> encodeCharacter('4')
ans =
'1010001110101110'
or any other character. Note that you can only pass in one character. If you pass in 2 or more, then a different assert will fire.
0 个评论
Cris LaPierre
2022-6-17
That is what an assert does. If the assertion fails (here that means that in is not a char), then an error is thrown and the message 'Assertion failed.' is thrown.
% Assertion is true -> no error
in = '5';
assert(ischar(in))
% Assertion is false -> error
in = 5;
assert(ischar(in))
2 个评论
Daniel Lyddy
2023-12-15
I hate the fact that it prints "Error using assert." That misleads developers into thinking they've coded up their assert() lines incorrectly.
I just want to print my own error message. The other stuff is confusing to my end users, and should only be printed as a default if I have not provided my own error message.
Stephen23
2023-12-15
编辑:Stephen23
2023-12-15
@Daniel Lyddy: it is also strangely inconsistent: ERROR does not state "Error using error":
error('some text')
MATLAB versions until at least R2021a did not include the text "Error using assert", so it is a recent change:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1569582/image.png)
Apparently someone meddled in something that worked perfectly. My guess is that new text was introduced with this behavior change in R2022a:
A related topic, where someone meddled with ERROR to try and "improve" it... thus rendering it useless:
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!