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

2 visualizzazioni (ultimi 30 giorni)
amemori
amemori il 14 Ott 2020
Commentato: 源樹 上林 il 7 Nov 2020
行列データ内で任意の数字が現れたタイミングから新たに始まる行列を作成することはできますか?
具体的には、様々なn×2行列において一列目に10000という数値が生じたタイミングをグラフのx軸において0となるように新たに行列を作成したいです。
  1 Commento
源樹 上林
源樹 上林 il 7 Nov 2020
 できます。ただし実装方法は状況次第で変わると思います。
 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)

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su table in Help Center e File Exchange

Tag

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!