To check coding
1 次查看(过去 30 天)
显示 更早的评论
I have coding as below.
a=[11 11 33 33 22 44; 33 33 33 11 11 22; 33 33 11 22 22 44; 44 44 33 22 44 11]
s = size(a);
b = zeros(s);
b(abs(a - 33) < 1e3*eps) = -10;
k = [true(s(1),1) diff(a,1,2)~=0].*a;
p = arrayfun(@(x)10*nnz(strfind(k(x,:),[33 22])),(1:s(1))');
penalty = sum(b,2) + p;
The coding is need to fulfil below conditions and cannot overlap each other:
pattern | penalty
33 33 33 | -30
33 33 22 | -20
33 11 | -10
33 33 22 | -10
33 22 | 0
Therefore, I need your help to check and correct this coding. Thank you.
0 个评论
采纳的回答
Andrei Bobrov
2012-1-2
try this is code:
s = size(a);
b = zeros(s);
b(abs(a - 33) < 1e3*eps) = -10;
p = arrayfun(@(x)10*nnz(strfind(a(x,:),[33 22])),(1:s(1))');
penalty = sum(b,2) + p;
4 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!