如何只在一行(总共三行)中编写此代码?

时间:2017-10-12 01:09:13

标签: matlab loops vector output

代码是:

function [w]= example1(v)
 w=[];
 for i= 1:length(v)
   if v(i) ~=2
     w= [w,0];
   else
     w=[w,10];
   end
end

我想知道如何操作我的代码,以便它可以在不使用and loops或if语句的情况下完全适合一行(总共三行考虑功能行和结束)。 输入也是行向量。

1 个答案:

答案 0 :(得分:1)

如果您只有单一条件v ~= 2,您可以执行以下操作:

首先创建一个空的零数组,然后将{10}添加到v == 2

v = [1,2,1,1,2,1,2,2];
w = zeros(size(v)) + (v == 2) * 10;

请查看logical operations的文档以获取更多信息。