xdataの行とydataの行の同じ行をxdataの行と等しい行のydataを削除する方法
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
data = dir('*.csv');
for n = 2:1:length(data)
data_csv = readmatrix(data(n).name);
data_name = data(n).name;
[Nc, Nr] = size(data_csv);
indata = data_csv(14:Nc, 2:3);
%xdataを0から読み取り、1つ前のdataよりdataが小さくなれば、終了させる方法を知りたいです。
xdata = indata(:, 2);
ydata = 10^3 * indata(:, 1) ./ data_A(n, 1);
xdata(xdata <= 0) = []; % csvのデータを0以下のものは削除
%xdataで削除行をydataの行と同じ行の部分を削除したいのですが何かいい方法はありませんか?
xend = find(diff(xdata) < 0) % 1つ前のdataよりdataが小さくなれば、終了させる
plot(xdata(1:xend), ydata(1:xend),'b')
hold on
end
hold off
0 Kommentare
Antworten (1)
Atsushi Ueno
am 20 Mär. 2023
>xdataで削除行をydataの行と同じ行の部分を削除したいのですが何かいい方法はありませんか?
(xdata <= 0)は線形インデックス(単なる整数)なので、xdataにもydataにも適用する事が可能です。
従って xdata(xdata <= 0) = []; ydata(xdata <= 0) = []; とすれば、xdata と ydata の同じ部分だけを削除する事が出来ます。
data = dir('*.csv');
for n = 2:1:length(data)
data_csv = readmatrix(data(n).name);
data_name = data(n).name;
[Nc, Nr] = size(data_csv);
indata = data_csv(14:Nc, 2:3);
%xdataを0から読み取り、1つ前のdataよりdataが小さくなれば、終了させる方法を知りたいです。
xdata = indata(:, 2);
ydata = 10^3 * indata(:, 1) ./ data_A(n, 1);
xdata(xdata <= 0) = []; % csvのデータを0以下のものは削除
%xdataで削除行をydataの行と同じ行の部分を削除したいのですが何かいい方法はありませんか?
ydata(xdata <= 0) = [];
xend = find(diff(xdata) < 0) % 1つ前のdataよりdataが小さくなれば、終了させる
plot(xdata(1:xend), ydata(1:xend),'b')
hold on
end
hold off
1 Kommentar
Siehe auch
Kategorien
Mehr zu ワークスペース変数と MAT ファイル finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!