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

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

 Respuesta aceptada

Hernia Baby
Hernia Baby el 18 de Feb. de 2021

0 votos

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 comentarios

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre グラフィックス en Centro de ayuda y File Exchange.

Productos

Versión

R2019a

Etiquetas

Preguntada:

el 18 de Feb. de 2021

Comentada:

el 19 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!