有没有办法在matlab中完成i ++?

时间:2013-01-08 21:53:01

标签: c++ matlab variables

假设srcHoughMatrix是一个三维矩阵:

而不是

    if (currentRadius >= MINIMUM_ALLOWED_RADIUS )
    % we're using only radiuses that are 6 or above 
        currentHough = srcHoughMatrix(index,jindex,currentRadius);
        srcHoughMatrix(index,jindex,currentRadius) = currentHough + 1;
    end

如果条件为真,如何在不使用临时变量的情况下向每个单元格添加1 或没有

srcHoughMatrix(index,jindex,currentRadius)  = srcHoughMatrix(index,jindex,currentRadius)  + 1;

谢谢

2 个答案:

答案 0 :(得分:7)

不是我不会做@Jonas所建议的,而是使用operator怎么办?它用于定义新的用户定义的运算符符号或删除它们(您将需要符号工具箱)。

operator(symb, f, T, prio)定义了symb类型的新运算符符号T(前缀|后缀|二进制| Nary),优先级为prio。函数f使用new运算符计算表达式。

给定运算符符号“++”,比如评估函数f,解析器构建以下表达式,具体取决于运算符的类型,其中:

前缀:输入++ x导致f(x)。

Postfix :输入x ++导致f(x)。

二进制:输入x ++ y ++ z导致f(f(x,y),z)。

Nary :输入x ++ y ++ z导致f(x,y,z))。

在matlab的documentation上查看更多内容。

答案 1 :(得分:5)

Matlab没有++运算符。

但是,如果您想缩短语句并避免使用临时变量,则至少可以写

srcHoughMatrix(index,jindex,MINIMUM_ALLOWED_RADIUS:end) = ... 
    srcHoughMatrix(index,jindex,MINIMUM_ALLOWED_RADIUS:end) + 1;

(假设currentRadius采用从1到第3维大小的所有值)。