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

 采纳的回答

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.

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by