To check coding

3 visualizaciones (últimos 30 días)
yue ishida
yue ishida el 2 de En. de 2012
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.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 2 de En. de 2012
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 comentarios
Andrei Bobrov
Andrei Bobrov el 3 de En. de 2012
Thank you Walter, corrected.
yue ishida
yue ishida el 3 de En. de 2012
Yes, thank you very much...

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by