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

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

 채택된 답변

Hernia Baby
Hernia Baby 2021년 2월 18일

0 개 추천

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

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 グラフィックス에 대해 자세히 알아보기

제품

릴리스

R2019a

태그

Community Treasure Hunt

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

Start Hunting!