MATLAB function 配列(ベクトル)入力
Show older comments
MATLABのMファイルで関数を定義する際に入力の値で条件付けて出力するという基本的な関数を書きたいのですが、出力が思う通りに行きません。
function y = func(x)
for i:length(x)
if (x(i) > = 1) && (x(i) < 2)
y = x;
elseif (x(i) >= 2) && (x(i) < 3)
y = x + 1;
else
y = x + 2;
end
end
end
上記のような簡単な関数ですが、xがスカラ値のときは思い通りの値が出てくれます。しかしながら、xがベクトル値のとき例えば、x = [1 2 3 4]'
に対して、y = [3 4 5 6]'となり、どうやら全てelseのときの条件と判定されてしまいます。(この場合は y = [1 3 5 6]'と出てほしいのですが)
どこか記述の仕方が悪いのでしょうか?
基本的なことで恐れ入りますが、どこが間違えでどのようにすればよろしいかご教授いただけませんでしょうか?
以上、よろしくお願いいたします。
Accepted Answer
More Answers (1)
Kimiyasu Sasaki
on 13 Dec 2019
0 votes
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!