我与实验MATLAB OOP,因为一开始我模仿我的C++的记录器类,我把我所有的字符串辅助函数在String类,以为这将是巨大的,能够做的事情一样a + b,a == b,a.find( b )而不是strcat( a b ),strcmp( a, b ),检索的第一元件strfind( a, b ),等
问题:减速
我把上面的东西用上,并立即注意到一个急剧减速.我做错了(这当然有可能,因为我有相当有限的MATLAB经验),还是MATLAB的OOP只是引入了很多开销?
我的测试用例
这是我为字符串做的简单测试,基本上只是附加一个字符串并再次删除附加部分:
classdef String < handle
....
properties
stringobj = '';
end
function o = plus( o, b )
o.stringobj = [ o.stringobj b ];
end
function n = Length( o )
n = length( o.stringobj );
end
function o = SetLength( o, n ) …Run Code Online (Sandbox Code Playgroud) MATLAB是一种按值传递的语言.我有一个处理像素邻居的递归函数.每次调用函数时,复制图像(在我的情况下是两个图像)是非常昂贵的.
我使用全局变量来解决问题.有没有其他方法可以使递归函数修改数组?
我可以在matlab中使用堆栈数据结构吗?
例如,我可以在其中推送元素的整数堆栈stack.push(i),从中获取元素,i = stack.pop()并检查它是否为空stack.isempty().