如何计算无序Java列表的中值?
下面是我到目前为止编写的代码:
public class MockTest1 {
/*
given a random list of integers, find the median e.g. given the list [1, 4, 2, 3, 5] the median is 3
*/
public static void main(String[] args) {
List<Integer> array = List.of(1, 3, 4, 5, 2);
这是我几个星期来一直在努力解决的问题。该算法如下:
从较大的数组中选择子数组作为行和列的数组
计算子阵的中值
用中值替换子数组中的单元格
将子数组按自己的长度向右移动。
重复数组的结尾
按自己的高度向下移动子数组
重复
我的步骤1至3如下:
import numpy as np
w1 = np.arange(100).reshape(10,10)
side = 3
patch = w1[0:side, 0:side]
i, j = patch.shape
for j in range(side):
for i in range(side):
这只是一个简单的中值计算器,它计算给定数组/列表的中值。
def median(lst):
nl = []
nl = sorted(lst)
e = int(len(nl))
if e % 2 != 0: # True if odd # of #'s
ind = int(((e / 2.0) - 0.5)) # index of the median
c = nl[ind]
print c
else: # even # of #'s
ind_left = int(e / 2.
我正在尝试将下面的代码从MATLAB转换为C++:
function data = process(data)
data = medfilt2(data, [7 7], 'symmetric');
mask = fspecial('gaussian', [35 35], 12);
data = imfilter(data, mask, 'replicate', 'same');
maximum = max(data(:));
data = 1 ./ (data/maximum);
d
我有一个int的列表,a,在0到3000之间。len(a) = 3000。我有一个for循环,它迭代这个列表,在一个更大的数组中搜索每个元素的索引。
import numpy as np
a = [i for i in range(3000)]
array = np.random.randint(0, 3000, size(12, 1000, 1000))
newlist = []
for i in range(0, len(a)):
coord = np.where(array == list[i])
newlist.append(coord)
如您所见,coord将是坐