Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 30.10.2019
Сообщений: 12
Matlab 2015

Обработка двумерных массивов

30.10.2019, 00:44. Показов 2713. Ответов 3

Студворк — интернет-сервис помощи студентам
Необходимо выполнить заданную обработку числового двумерного массива, имеющего произвольное количество строк(N) и столбцов(M). В каждом из вариантов содержатся ограничения на максимальные значения величин N и M. Элементы массива должны вводиться с клавиатуры и для их ввода следует разработать процедуру
При этом
Вычислить сумму чисел для каждого столбца, удовлетворяющих условию xi,j > a. Здесь a- произвольная величина. N <= 5, M <= 5

Сам я продвинулся только вот так, но выдается ошибка, потому что в 12 строке кода я вычисляю следующую строчку в столбце через i+1. Как-то можно по другому? При этом еще нужно соблюсти условие xi,j > a
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
disp('Введите двумерный массив A(N*M),N<=5, M<=5. Пример ввода: A = [4 3; 5 6]');
A=input('A=');
disp('A=');
disp(A);
[N,M]=size(A);
a=input('a=');
i=1;
j=1;
 
while j<=N
    while i<=M
      u=A(i,j)+A((i+1),j);
      i=i+1;
    end
    j=j+1;
end
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2019, 00:44
Ответы с готовыми решениями:

Обработка двумерных массивов
Вычислить значение наибольшего по модулю элемента и его индекс для каждого столбца массива. N &lt;= 10, M &lt;= 10

Обработка двумерных массивов
Есть задача Вычислить сумму чисел для каждого столбца, удовлетворяющих условию Xij&gt;a. а- произвольная величина. N&lt;=5, M&lt;=5. (N-...

Пересечение областей (массивов) двумерных
День добрый! Стоит задача определения пересечения двух областей заданных таблично: y1=f(x1) и y2=f(x2). См. рисунок. Есть...

3
Эксперт по математике/физике
 Аватар для jogano
6360 / 4067 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
30.10.2019, 04:00
Лучший ответ Сообщение было отмечено Qloker как решение

Решение

Ваши ошибки:
1) для каждого столбца требуется перебирать номера строк i от 1 до последней, то есть внутри цикла while по j нужно вначале заново присваивать i=1, а не один раз в начале.
2) внутри цикла while по i, когда i=M (а на самом деле должно быть до N), вы пытаетесь взять элемент i+1-й строки (то есть N+1-й), которого не существует.
3) в результате выполнения программы, если исправить вышеперечисленные ошибки, будет выводиться одно число - для последнего столбца сумма двух элементов в двух последних строках, а вам нужно для каждого столбца сумму всех элементов. Значит, u должно быть массивом, для каждого нового столбца должно прописываться начальное значение u(j)=0, и сумма должна накапливаться, то есть должна быть ваша 12-я строка вида u(j)=u(j)+...
4) ну и условие на элементы, которые прибавляются.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
disp('Введите двумерный массив A(N*M),N<=5, M<=5. Пример ввода: A = [4 3; 5 6]');
A=input('A=');
disp('A=');
disp(A);
[N,M]=size(A);
a=input('a=');
j=1; 
while j<=M
    u(j)=0;
    i=1;
    while i<=N
       if A(i,j)>a
         u(j)=u(j)+A(i,j);
       end
      i=i+1;
    end
    j=j+1;
end
После запуска вбейте u и нажмите ввод - будет выведен вектор-строка нужных сумм.
1
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
30.10.2019, 14:12
Циклы while можно вообще убрать, а вместо них написать
Matlab M
1
u=sum(A.*(A>a),1)
1
0 / 0 / 0
Регистрация: 30.10.2019
Сообщений: 12
30.10.2019, 16:05  [ТС]
Спасибо, работает.

Добавлено через 2 минуты
Centurio, не знал, что с помощью этой функции можно еще и отобрать некоторые значения, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2019, 16:05
Помогаю со студенческими работами здесь

Обработка двумерных массивов
Задан массив A(m,n). Сформировать массив C из элементов четных столбцов и массив B из элементов нечентных строк массива A. Найти сумму...

Обработка двумерных массивов
Дана матрица A целых чисел и переменная Х. Элементы нечетных строк матрицы А заменить на Х. Помогите пожалуйста дописать код по...

обработка двумерных массивов
Дана целочисленная прямоугольная матрица определить: - кол-во столбцов не содержащих ни одного нулевого элемента. - суммы положительных...

Обработка двумерных массивов в C++
Помогите переделать код,чтобы я смог использовать #define и вводить любые значения(строк,столбцов) для массивов(матриц) #include...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru