2 / 2 / 2
Регистрация: 10.05.2010
Сообщений: 63
|
||||||
1 | ||||||
Поиск максимального,минимального, среднего элемента18.10.2012, 21:49. Показов 11027. Ответов 10
Метки нет (Все метки)
Необходимо найти минимальный,средний и максимальный элемент. Заранее спасибо!
0
|
18.10.2012, 21:49 | |
Ответы с готовыми решениями:
10
Поиск минимального и максимального элемента в матрицах Поиск максимального элемента и индекса в матрице Поиск максимального элемента в матрице, при этом не использовать стандартную функцию Нахождение минимального и максимального значения больше нуля в векторе |
19.10.2012, 16:12 | 2 | ||||||||||
Сообщение было отмечено как решение
Решение
Что это за безумие?
S = sum(I( : )); И в этой строке avg=sum/size; матлаб будет ругаться, т.к. sum и size это имена встроенных ф-ций! т.е. нужно все это дело переобозвать Не сильно загрузил? ну тогда держи ответ на свой вопрос:
3
|
2 / 2 / 2
Регистрация: 10.05.2010
Сообщений: 63
|
|||||||||||
20.10.2012, 13:41 [ТС] | 3 | ||||||||||
Все объяснил предельно ясно!спасибо!
Добавлено через 23 минуты Выдается ошибка:
0
|
301 / 214 / 7
Регистрация: 16.10.2012
Сообщений: 485
|
|
20.10.2012, 14:13 | 4 |
Там опечатка вкралась. Вместо tmp = abs(I - (Imin+Imax)/2); нужно tmp = abs((Imin+Imax)/2);
0
|
20.10.2012, 15:27 | 5 |
sova_f, нет там нет опечатки. Единственное, там I - матрица, а из нее вычитается число, поэтому результат также матрица. С телефона трудно разобраться. Может поможет:
tmp = abs( I( : ) - (Imax+Imin)/2 ); но не уверен, т.к. в этом случае будет ошибка в след. строке при нахождении элемента матрицы I из вектора tmp. (они должны быть подобны, т.е. иметь одинаковый размер). Смысл матрицы tmp в том, что это матрица I из которой вычли теоретически среднее, поэтому наиболее близкий элемент к среднему стал ближе всего к нулю, т.е. модуль его минимальный (поэтому для его выявления берем еще модуль abs). Далее ф-цией find находим координаты этого минимального по модулю элемента и находим значение элемета матрицы I с такими координатами. (вооо, а в матлабе это всего 2 строки!) Еще ошибка может вылазить, если Imax и Imin каким-то образом оказались не числами, а массивами! Надо проследить.
1
|
301 / 214 / 7
Регистрация: 16.10.2012
Сообщений: 485
|
|||||||||||
20.10.2012, 17:18 | 6 | ||||||||||
Ну тогда можно tmp1=find(tmp<=Iср), а потом max(tmp1) - средний элемент массива. Не? Т.е. средний элемент массива =max(find(tmp<=Icp)) ?
Добавлено через 13 минут А не, не так. find вернет индексы элементов, которые меньше Icp. А средний будет max(I(tmp(:,2,: ))), где tmp1(:,2,: ) матрица индексов из массива I Добавлено через 26 минут
1
|
20.10.2012, 17:36 | 7 |
sova_f да, так тоже красиво! :)
Только, нужно понимать, что если I - матрица, то max(I) - вектор-строка, в котором каждый элемент равен максимуму из соотв. столбца, а не число! это же относится и к ф-ции min. Поэтому, вероятно, и вылетает ошибка, когда из матрицы I пытается вычесть полусумму векторов. В этом случае нужно либо писать: Imax = max( I(:) ) или Imax = max( max(I) ) (часто в первом случае двоеточие и скобку редактор сообщений форума воспринимает как смайл!) и следить за их значением.
0
|
301 / 214 / 7
Регистрация: 16.10.2012
Сообщений: 485
|
|
20.10.2012, 17:56 | 8 |
согласна. Многомеры не прверила - лень ))))
0
|
2 / 2 / 2
Регистрация: 10.05.2010
Сообщений: 63
|
||||||
20.10.2012, 18:26 [ТС] | 9 | |||||
У меня те же самые ошибки, работаю с изображением. Накидала следующий код, выдает результаты. Как думаете является ли это верным?
0
|
301 / 214 / 7
Регистрация: 16.10.2012
Сообщений: 485
|
|
20.10.2012, 18:42 | 10 |
а киньте сюда свою матрицу, попробовать (матфайлом или картинка, прикрепленным файлом)
Добавлено через 5 минут А ларчик просто открывался... Уточните, что имел в виду преподаватель. Mean - это среднее арифметическое всех элементов массива. А мы тут напридумывали среднее между максимальным и минимальным )))))
1
|
20.10.2012, 19:04 | 11 |
Хе, мы тут карячились, выискивали средний элемент, а нужно было найти усредненное значение! :D
Да, так можно только цикл убери, оставь Imax = max( I(:) ) Imin = min( I(:) ) Iavg = mean( I(:) ) Без ";", чтобы значения выводились. Но что бы понять похожи они на правду или нет, ты хотя бы напиши результат ;) Добавлено через 21 минуту Немудрено было перепутать, коль название темы "Поиск... среднего элемента" ;)
2
|
20.10.2012, 19:04 | |
20.10.2012, 19:04 | |
Помогаю со студенческими работами здесь
11
Подсчитать: каждое число, меньшее среднего арифметического минимального и максимального элементов, умножить на Найти сумму минимального и максимального элемента нахождение минимального и максимального элемента в каждом столбце матрицы Перестановка максимального и минимального элемента в главной диагонали матрицы случайных чисел В матрице все элементы, модули которых равны модулям максимального или минимального элемента, заменить значением y Поиск индекса максимального элемента массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |