相关疑难解决方法(0)

角落案例,意外和不寻常的MATLAB

多年来,在阅读其他代码时,我遇到并收集了一些MATLAB语法的例子,这些例子起初可能不常见且违反直觉.请随时评论或补充此列表.我用r2006a验证了它.


MATLAB 总是将函数的第一个输出参数(如果它至少有一个)返回到其调用者工作空间,如果调用函数而不返回参数,myFunc1(); myFunc2();则调用者工作空间仍然会包含第一个输出myFunc2();为"不可见" ans变量.如果它ans是一个参考对象,它可以发挥重要作用- 它将保持活力.


set([], 'Background:Color','red')
Run Code Online (Sandbox Code Playgroud)

MATLAB有时很宽容.在这种情况下,将属性设置为对象数组也可以使用无意义属性,至少在数组为空时.这种阵列通常来自harray = findobj(0,'Tag','NotExistingTag')


myArray([1,round(end/2)])
Run Code Online (Sandbox Code Playgroud)

end关键字的使用可能看起来不干净,但有时非常方便而不是使用length(myArray).


any([]) ~= all([])
Run Code Online (Sandbox Code Playgroud)

惊人地any([])返回falseall([])返回true.我一直认为那all更强大any.

编辑:

不为空的参数all()返回true给值的子集为其中any()返回true(例如真值表).这意味着any() false暗示all() false.MATLAB以[]参数的形式违反了这个简单的规则.

洛伦还在博客上写了这篇文章.


Select(Range(ExcelComObj))
Run Code Online (Sandbox Code Playgroud)

程序样式COM对象方法调度.不要奇怪exist('Select')回报为零!


[myString, myCell]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,MATLAB将字符串变量隐式转换myString为单元格类型{myString}.如果我不希望它这样做,它也可以工作.


[double(1.8), uint8(123)] => 2 123 …
Run Code Online (Sandbox Code Playgroud)

matlab

28
推荐指数
3
解决办法
6671
查看次数

标签 统计

matlab ×1