假设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;
谢谢
答案 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维大小的所有值)。