相关疑难解决方法(0)

MATLAB OOP运行缓慢还是我做错了什么?

我与实验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)

oop benchmarking matlab profiling matlab-class

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

如何在MATLAB中处理函数参数的名称/值对

我有一个函数,它将可选参数作为名称/值对.

function example(varargin)
% Lots of set up stuff
vargs = varargin;
nargs = length(vargs);
names = vargs(1:2:nargs);
values = vargs(2:2:nargs);

validnames = {'foo', 'bar', 'baz'};    
for name = names
   validatestring(name{:}, validnames);
end

% Do something ...
foo = strmatch('foo', names);
disp(values(foo))
end

example('foo', 1:10, 'bar', 'qwerty')
Run Code Online (Sandbox Code Playgroud)

似乎在提取适当的值时需要付出很多努力(并且它仍然不是特别强大的再次严格指定的输入).有没有更好的方法来处理这些名称/值对?是否有MATLAB附带的辅助函数可以提供帮助?

matlab arguments function name-value function-parameter

65
推荐指数
6
解决办法
4万
查看次数

我们可以在matlab程序中使用"dot"吗?

我想问一下是否有任何方法可以实现一个可以使用点分隔符生成ID的程序"." 例如:

a1.b2.c3 
Run Code Online (Sandbox Code Playgroud)

请注意,我不想将点作为一个字符处理,它应该像一个分隔符.

如果你在你的名字和你父亲的名字以及你祖父的名字之间加一个点,就像这样:

John.Paul.Hit
Run Code Online (Sandbox Code Playgroud)

matlab

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