行列データ内の任意の​数字から新たに行列を​作成したい。

1 次查看(过去 30 天)
amemori
amemori 2020-10-14
行列データ内で任意の数字が現れたタイミングから新たに始まる行列を作成することはできますか?
具体的には、様々なn×2行列において一列目に10000という数値が生じたタイミングをグラフのx軸において0となるように新たに行列を作成したいです。
  1 个评论
源樹 上林
源樹 上林 2020-11-7
 できます。ただし実装方法は状況次第で変わると思います。
 n×2行列とx軸の関係が明確ではありませんので、あくまで推定で解釈してスクリプトを書いてみました。さまざまということなので1列目に10000が複数出現するような場合は、もう少し手を加える必要があります。
% n×2行列
x = -31416:1:31416; % 説明をわかりやすくするため整数限定
y = sin(x./10000);
data = [x; y]';
% 10000という数値が生じたタイミングの1000
limit = 10000;
% 1列目がx軸、2列目がy軸 という解釈で合ってるきっと!
plot(data(:,1), data(:,2))
grid on
hold on
% limit のところを 0 にシフト
% こういう行列がほしいが、0より下はいらない
plot(data(:,1) - limit, data(:,2))
% 1列目に limit を見つけたら data を更新
f = find(data(:,1) == limit);
if not(isempty(f)) % 無いというケースもある
data = data(f(1):end, :);
end
data(:,1) = data(:,1) - limit;
% 完成
plot(data(:,1), data(:,2), 'Linewidth', 5)

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 table 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!