区間に応じて2つの関数を使い分けて演算したい

例:
x<0ではy=exp(x), x>=0ではy=sin(x) の yを計算で取り出したいです。
plotのしかたまでは見つけられますが、データをワークスペースにどう取り出せばいいのかわかりません。

 Akzeptierte Antwort

Hernia Baby
Hernia Baby am 18 Feb. 2021

0 Stimmen

y1 = y(x(x<0));
y2 = y(x(x>=0));
のようにすれば取り出せます。
以下は一度正負で異なる関数を返し、まとめてプロットする方法です。
参考にどうぞ。
clear, clc, close all;
x = -3:0.1:3;
x = x';
y1 = exp(x(x<0));
y2 = sin(x(x>=0));
figure(1);
plot(x,[y1; y2],'o')

3 Kommentare

kenichiro inagaki
kenichiro inagaki am 18 Feb. 2021
ありがとうございます!もう少し可能でしたら教えて下さい。
これだとxとyの関係が別々になってしまうんですが、一つに統合するにはどうすればいいしょうか
上記の式に対し、
y = [y1 ; y2]
を作成、その後
XY = [x y]
と統合するのがセオリーでしょうか。これだと簡単ですが、もし他にやり方があれば教えていただきたいです…。
Hernia Baby
Hernia Baby am 19 Feb. 2021
その認識であってます。
列の統合にはカンマ( , )が必要です。
2列目にyを統合する場合は以下の手順を行ってください。
-----------
y = [y1; y2];
xy = [x, y];
-----------
xy(:,1) に x の列ベクトル、xy(:,2) に y の列ベクトル
がそれぞれ格納されます。
kenichiro inagaki
kenichiro inagaki am 19 Feb. 2021
ありがとうございます!できました!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Version

R2019a

Tags

Community Treasure Hunt

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

Start Hunting!