MATLAB for循环筛选数组数据,要求输出数据为整数且数值间隔相等
时间: 2023-06-24 11:08:20 浏览: 118
可以使用以下代码实现:
```Matlab
% 原始数据数组
data = [3.2, 5.6, 8.9, 10.4, 12.1, 14.3, 15.8, 18.2, 20.5, 23.1];
% 要求每隔2个元素选择一个数
interval = 2;
% 初始化筛选后的数组
filtered_data = [];
for i = 1:interval:length(data)
% 只选择整数
if mod(data(i), 1) == 0
filtered_data(end+1) = data(i);
end
end
disp(filtered_data);
```
其中,`interval` 变量表示要求每隔多少个元素选择一个数。上述代码中,选择的是每隔2个元素选择一个数。如果要求选择的数值间隔相等,则需要在循环中加入额外的判断和计算,例如:
```Matlab
% 原始数据数组
data = [3.2, 5.6, 8.9, 10.4, 12.1, 14.3, 15.8, 18.2, 20.5, 23.1];
% 要求选择5个数
num_selected = 5;
% 初始化筛选后的数组
filtered_data = [];
% 计算每个数值间隔
interval = floor(length(data) / (num_selected - 1));
for i = 1:interval:length(data)
% 只选择整数
if mod(data(i), 1) == 0
filtered_data(end+1) = data(i);
end
end
% 如果选择的数不足要求,则选择最后一个元素
if length(filtered_data) < num_selected
filtered_data(end+1) = data(end);
end
disp(filtered_data);
```
上述代码中,`num_selected` 变量表示要求选择的数的个数。通过计算每个数值间隔(即相邻两个选择的数之间的距离),可以保证选择的数值间隔相等。如果选择的数不足要求,则选择最后一个元素。
阅读全文