Writing to a new matrix after filtering outliers form original matrix
1 回表示 (過去 30 日間)
古いコメントを表示
Greetings. I am reading in a matrix of ~10,000 values. I want to go through each element and determine if that value is in between a certain boundary limit. Given a for loop with a nested if-statement, how do I write to a new matrix, 'newdata', other than just printing out the last value in the original matrix, 'data'? My code is below:
clc;
clear all;
close all;
data = load('data');
for i = 1:length(data)
x = data(i);
limits = 5;
if (x < limits) && (x > (limits*-1))
newdata = [x];
end
end
Thank you for the help.
0 件のコメント
採用された回答
Moe_2015
2016 年 3 月 7 日
This should work. Basically run another index called "k" as a sum that only increases when the inequalities are satisfied.
clc;
clear all;
close all;
data = load('data');
k=0;
for i = 1:length(data)
x = data(i);
limits = 5;
if (x < limits) && (x > (limits*-1))
k=k+1;
newdata(k) = x;
end
end
2 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!