2011-01-09 3 views
4
double[] tab = new double[10]; 

Я знаю, что могу генерировать минимум на tab.Min().Как получить минимальное значение в двухмерном массиве для данного индекса?

double[,] tab = new double[10,2]; 

Это таблица координат, во втором индексе 0 есть x и 1 есть y. Есть 10 баллов.

Как получить минимальное (и максимальное) значение x и y?

Другими словами:

minX является наименьшим значением в 1-м столбце (второй индекс = 0 tab[xxx, 0] например);
minY - наименьшее значение во 2-й колонке (второй индекс = 1, например tab[xxx, 1]);

+0

Я не уверен, что вы пытаетесь получить. Вам нужна наименьшая пара (x, y), т. Е. Ближе всего к началу координат, или вы пытаетесь получить границы области - min/max в каждой координате? – tvanfosson

+2

Точка [] tab = новая точка [10]; Это массив координат. –

+0

@tvanfosson Нет, он хочет получить минимум столбца. –

ответ

6
var doubles = new double[4,2]{{1,2},{4,5},{7,8},{9,1}}; 
var min = System.Linq.Enumerable.Range(0, 4).Select(i => doubles[i, 1]).Min(); 

ИЛИ

var doubles = new double[4,2]{{1,2},{4,5},{7,8},{9,1}}; 
var min = System.Linq.Enumerable.Range(0, doubles.GetUpperBound(0)+1) 
           .Select(i => doubles[i, 1]).Min(); 
0
double minX = tab[0,0], minY = tab[0,1]; 
String coordinate = "X"; 

foreach (double number in tab) 
{ 
    if (coordinate == "X") 
    { 
     if(number < minX) 
      minX = number; 

     coordinate = "Y"; 
    } 
    else if (coordinate == "Y") 
    { 
     if (number < minY) 
      minY = number; 

     coordinate = "X"; 
    } 
} 
+0

Вместо 'string Coordinade' я бы использовал' int index = 0' и изменил его позже на '1'. Я хотел сделать это аналогичным образом в 'tab.Min()'. Я хочу, чтобы я мог проверить каждый элемент в поиске минимум. –

+0

Я знаю, что ... –

Смежные вопросы