行列データ内の任意の数字から新たに行列を作成したい。
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
行列データ内で任意の数字が現れたタイミングから新たに始まる行列を作成することはできますか?
具体的には、様々な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)
Risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!