replace element in the vector without using loops or if statement

using a logical vector and a single line of code (3 total lines if you count the “function” line and the “end” line). Your function should not have any loops or if statements in it. (You should assume the input is a row vector.)
here is the given code:
function [ y ] = nottwo( v )
y = [];
for i = 1:length(v)
if v(i)~= 2
y = [y, 0];
else
y = [y, 10];
end
end

 Respuesta aceptada

It is difficult to help without giving away the solution.
To use a logical vector to address the array, see what this example code is doing:
v = randi(9, 1, 20)
LogicalIndex = v ~= 2
See the documentation on Matrix Indexing (link) for a full discussion.

3 comentarios

Hint: logical vectors can be multiplied by a constant such as 10.
i tried it but it still give me 1
Please see the documentation on Matrix Indexing I linked to.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de En. de 2018

Comentada:

el 25 de En. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by