Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/17: Рейтинг темы: голосов - 17, средняя оценка - 4.71
KpuBbIE_Pyku
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 5
1

В матрице подсчитать количество элементов, значение которых меньше суммы первого положительного и последнего отрицательного элементов матрицы

27.02.2013, 18:21. Просмотров 3522. Ответов 8
Метки нет (Все метки)

Доброго времени суток.
Кое какие наработки:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
n=5; 
m=6; 
X=randi([-100 100],m,n);    
 
flagpositive=0;             
 
 
for i=m:-1:1                
    for j=n:-1:1            
        if X(i,j)>0         
            lastpositive=X(i,j);    
            flagpositive=1;         
            break;          
        end
    end
end
       
 
 
disp(X);            
 
disp(lastpositive);
застрял на нахождении первого положительного числа массива, вернее матлаб считает, что это самое число нужно искать справа налево первой строки, что, собственно, успешно делает.
Вот что получается:
HTML5
1
2
3
4
5
6
7
8
9
>> Untitled
   -51   -93    76    30    72
   -14    78   -81   -13   -84
   -98   -51   -30   -72    95
    22   -99    19    51   -94
    92    63    17   -52    67
   -81   -72    34    30    67
 
    72

Подскажите правильно ли это, или всё-таки нужно что-то поменять в коде, чтобы он искал слева направо? И если да, ткните пальцем где именно нужно менять, ибо как ни старался - ничего не получается. От помощи в дальнейшем решении задачи тоже не откажусь. Заранее благодарен.
P.S. Строго прошу не судить. Сегодня впервые в жизни сел за подобную программу.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 18:21
Ответы с готовыми решениями:

В матрице А[7,8] найти произведение элементов, значение которых меньше последнего элемента матрицы.
Помогите решить задачу! В матрице А найти произведение элементов, значение которых меньше...

Определить количество элементов, значения которых меньше модуля последнего отрицательного элемента массива
В одномерном числовом массиве x определить количество элементов, значения которых меньше...

Определить номера первого положительного и последнего отрицательного элементов массива
Определить порядковые номера и значения первого положительного и последнего отрицательного...

Найти разность первого положительного и последнего отрицательного элементов массива
В заданном векторе (одномерном массиве) найти: разность первого положительного и последнего...

Подсчитать количество элементов до первого положительного элемента матрицы
Доброго времени суток всем. Дана матрица 5х5 заполненная случайными числами, но дело в том, что...

8
Андресян
38 / 38 / 3
Регистрация: 18.01.2013
Сообщений: 64
27.02.2013, 20:36 2
Цитата Сообщение от KpuBbIE_Pyku Посмотреть сообщение
for i=m:-1:1 * * * * * * * *
* * for j=n:-1:1
что бы он счита слево на право и сверху вниз напиши:
Matlab M
1
2
for i=1:m                
    for j=1:n
0
KpuBbIE_Pyku
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 5
27.02.2013, 21:19  [ТС] 3
В этом случае ищет слева направо, но снизу вверх(
0
Зосима
4954 / 3327 / 313
Регистрация: 02.04.2012
Сообщений: 6,214
Записей в блоге: 16
Завершенные тесты: 1
28.02.2013, 07:54 4
Ребятки, когда дело касается матриц и первых (последних) элементов, то всегда должно указываться направление поиска! (в задании оно не указано )
в этом случае ищет слева на право, но снизу вверх
быть такого не может!
0
KpuBbIE_Pyku
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 5
28.02.2013, 09:53  [ТС] 5
Цитата Сообщение от Зосима Посмотреть сообщение
быть такого не может!
да чтоб мне пусто было)
0
Миниатюры
В матрице подсчитать количество элементов, значение которых меньше суммы первого положительного и последнего отрицательного элементов матрицы  
Зосима
4954 / 3327 / 313
Регистрация: 02.04.2012
Сообщений: 6,214
Записей в блоге: 16
Завершенные тесты: 1
28.02.2013, 10:32 6
может это некая фича 2012-го матлаба?
...
Ааа! все дело в break - оно выкидывает только из одного, внутреннего, цикла! поэтому и получается такая петрушка!
Вот как это должно быть:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
clear, clc
 
m = 3;
n = 4;
 
X = randint(m,n,[-99 99])
 
% растягиваем матрицу по строкам
a = X'; a = a(:)'
% сумма первого положительного и последнего отрицательного
s = a(find(a>0,1,'first')) + a(find(a<0,1,'last'))
% кол-во элементов, которые меньше этой суммы
n = length(a(a<s))
1
KpuBbIE_Pyku
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 5
28.02.2013, 11:47  [ТС] 7
Спасибо большое за помощь, заработало

Добавлено через 59 минут
Только теперь нужно в этой же матрице вычислить сумму квадратов её отрицательных элементов, думал сам справлюсь, оказалось это не так просто.
Пытаюсь добавить что-то вроде этого:
Matlab M
1
E=sum(X^(X<0))
или этого (как подсказывает матлаб) =):
Matlab M
1
E=sum(X.^(X<0))
но, конечно же, не получается...
0
Зосима
4954 / 3327 / 313
Регистрация: 02.04.2012
Сообщений: 6,214
Записей в блоге: 16
Завершенные тесты: 1
28.02.2013, 13:02 8
"а счастье было так близко"
Matlab M
1
E = sum(a(a<0).^2)
Если работать именно с матрицей X, то sum нужно писать дважды (по столбцам и по строкам)
Matlab M
1
E=sum(sum(X(X<0).^2))
0
KpuBbIE_Pyku
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 5
28.02.2013, 19:05  [ТС] 9
Ещё раз спасибо, задача решена.
0
28.02.2013, 19:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 19:05

В матрице определить сумму положительных элементов и количество элементов, значение которых меньше числа Z
Здраствуйте! Надо определить суму положительных элементов и кол-во элементов, значение которых...

Найти величину и номер первого отрицательного и последнего положительного элементов в массиве
хелп с программой. Найти величину и номер первого отрицательного и последнего положительного...

Определить порядковые номера и значения первого положительного и последнего отрицательного элементов массива Z.
Нужна помощь с задачей ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru