|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
Поиск в матрице ненулевых элементов по строкам и столбцам10.08.2012, 08:59. Показов 7294. Ответов 18
Метки нет (Все метки)
Здравствуйте помогите решить задачку. Есть квадратная матрица >> N=[1 0 0 0 0 0; 0 -1 0 0 1 0; 0 0 -1 0 0 0; 0 0 0 -1 0 0; 0 0 0 0 -1 1; -1 0 0 0 0 -1]
N = 1 0 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 1 -1 0 0 0 0 -1 надо начиная с [1 1] элемента начать производить поиск ненулевого элемента сначала в столбце 1 такой элемент находится на позиции [1 6]=-1 дальше ищем по строке №6 это элемент [6 6]=-1 дальше по столбцу №6 это [6 5]=1 и далее таким же образом осуществляем поиск пока программа в 3 столбце не найдет ненулевой элемент это решение задачи Вопрос как организовать такой поиск с учетом того что содержание и размерность матриц может быть разная. Входные данные: заполненная матрица. Выходные данные: некая С [1 6]=-1 С [6 6]=-1 С [6 5]=1 С [5 5]=-1 С [5 2]=1 С [2 2]=-1 конец Заранее благодарю
0
|
|
| 10.08.2012, 08:59 | |
|
Ответы с готовыми решениями:
18
Поиск по всем строкам и столбцам в DGV |
|
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20
|
|
| 10.08.2012, 09:09 | |
|
пусть матрица имеет размер m на n.
тогда просто for i:=1 to m do for j:=1 to n do if a[i,j]<>0 then writeln(i," ",j," ",a[i,j]); a это сама матрица. все вроде.
0
|
|
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 09:11 [ТС] | |
|
XelMed, спасибо а как это реализовать в Матлабе
0
|
|
|
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20
|
|
| 10.08.2012, 09:13 | |
|
ну смысл тот же обсолютно. просто синтаксис матлаба чуть чуть отличаться будет. я честно говоря уже давно не писал в нем ничего не вспомню(
0
|
|
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 09:15 [ТС] | |
|
XelMed, по сути данная матрица содержит в себе дерево В выводе программы должны выдаваться элементы которые отыскиваются с начало в столбце а потом в строке и как только путь притвется значит задача решена. Те не все ненулевые элементы должны отразиться.
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
|
| 10.08.2012, 12:10 | |
|
Если я правильно понял постановку задачи, то нужно организовать ломаную, соединяющую в матрице по строкам или столбцам ненулевые элементы? И в конце вывести их в виде массива?
0
|
|
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 12:20 [ТС] | |
|
Shoomath, да помогите пожалуйста реализовать в матлабе
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
||||||
| 10.08.2012, 13:19 | ||||||
0
|
||||||
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 13:28 [ТС] | |
|
Shoomath, а код до конца ? 47 строка не совсем понятна
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
||
| 10.08.2012, 13:43 | ||
|
Главное, программа работает правильно?
0
|
||
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 13:45 [ТС] | |
|
Shoomath, в результате работы программы вывелась исходная матрица а надо вывести путь С [1 6]=-1 С [6 6]=-1 С [6 5]=1 С [5 5]=-1 С [5 2]=1 С [2 2]=-1
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
||
| 10.08.2012, 14:03 | ||
|
0
|
||
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 14:09 [ТС] | |
|
Shoomath, после того как ввела C=C, матрица с отразилась программа работает правильно а каким образов изменить вывод? Спасибо за помощь.
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
||||||
| 10.08.2012, 17:13 | ||||||
1
|
||||||
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 19:47 [ТС] | |
|
Shoomath в результате выполнения данного кода опять вышла квадратная матрица, а не координаты пути те всех ненулевых элементов в порядке следования-поиска. Данная задача это всего лишь маленький модуль одной большой задачи. Реализовать вдругой среде для меня было бы проще но надо на матлабе, а я им не занималась вообще никогда по этому и ищу хороших людей себе в помощ.)))
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
|||||||
| 10.08.2012, 20:06 | |||||||
|
Вот, что выводит у меня в Matlab 7.9.0 (R2009b):
P.S.: Если это часть чего-то бОльшего, то зачем такие сложности с выводом, и необходимость вывода именно на экран?! Вам проще всего будет записать результаты в файл (лучший вариант) или создать функцию, если остальную часть тоже в Matlab'e писать будете...
1
|
|||||||
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 20:46 [ТС] | |
|
Shoomath, Спасибо Вам большое. Вы просто гений. Разрешите мне еще немгого уж извените за наглость. Спасибо заранее. Представим что у нас есть некое дерево 5 11 10 9 6 7 которое задается вместе с N в самом начале. Этот ответ который нам выдала программа
C(1,1)=1.000000 C(6,1)=-1.000000 C(6,6)=-1.000000 C(5,6)=1.000000 C(5,5)=-1.000000 C(2,5)=1.000000 C(2,2)=-1.000000 надо представить в следующем виде( причем вектор этот всегда может иметь разные значения) C(0,1)=1.000000 C(5,1)=-1.000000 C(11,1)=-1.000000 C(10,1)=1.000000 C(9,1)=-1.000000 C(6,1)=1.000000 C(7,1)=-1.000000 ну первый столбец понянто что соответствует вектору а второй первой строке с которой мы начинали поиск. Далее надо начать поиск со второй строки аналогичным способом т.е. искомый элемент с которого мы начинаем искать в N это 2,2=-1 и все больше нет ненулевых элементов по этому ответ будет С(11,2)=-1 далее смотрим 3 строку начинаем с элемента 3,3 ответом будет С(10,3)=0 для 4 строки ответ С(9,4)=0 далее С(6,5)=0 и с7,6=1 и все на этом вся задача больше ничего не надо будет. Я вас наверно уже замучила), простите но я без Вас никак.
0
|
|
|
4 / 4 / 1
Регистрация: 13.02.2010
Сообщений: 15
|
|
| 10.08.2012, 21:01 [ТС] | |
|
Shoomath, те для каждой строки с которой мы начинаем поиск смотрим по столбцу если нет там ненулевого элемента значит конец решение задачи найдено и выводим просто значение элемента с которого начинали а если есть то ищем пока в столбце будут тока одни нули. В п редыдущем сообщении я писала что ответом будет 0 С(10,3)=0 на самом деле -1 я имела в виду что все нет решения в столбце одни 0-ли, те в ответ программы надо вставить для них не 0 а -1. Спасибо. Во вложении график который представлен в матрице - это так просто вдруг понадобится.) мы всегда идем к базе к 6 узлу на графике от первого и через определенные ветви. Вот такая задачка. Никогда такое сама не делала. Огромнейщее вам спасибо мой списитель.
0
|
|
|
3 / 3 / 0
Регистрация: 14.05.2012
Сообщений: 33
|
||
| 15.08.2012, 17:41 | ||
|
Наконец-таки добрался до интернета. Ох, сколько Вы тут неправды про меня написали! Спасибо, спасибо, польщен. Если проблема все еще актуальна, задам несколько вопросов и пожеланий: 1)как Вам необходимо осуществить ввод вектора, назовем его T (в Вашем примере T=[5 11 10 9 6 7]): просто в виде массива, который Вы сможете поменять непосредственно в программе; или через диалоговое окно ввода? 2)в Вашем примере узлов у ломанной 7( (1,1),(6,1),(6,6),(5,6),(5,5),(2,5),(2,2 )), а вектор длиной только 6 (5,11,10,9,6,7). Длины вектора для всей цепочки не хватает, возникает такой вопрос критично сначала нули ставить? Или их можно добавить в конце (после того, как вектор T кончится)? 3)и, главное, чтобы не устраивать наводнение из постов, содержащих пояснения, исправления и уточнения, и ускорить выполнение программы. Давайте для Вашей конкретной матрицы: N = [1 0 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 1 -1 0 0 0 0 -1] и Вашего вектора T=[5 11 10 9 6 7] Вы выпишите по шагам полное решение. Потом хорошенько его проверьте (или попросите кого-нибудь проверить) и только потом поместите сообщение сюда, потому что из обилия Ваших уточняющих и исправляющих сообщений - трудно понять, что конкретно Вам нужно. С уважением, помогающий =)
0
|
||
| 15.08.2012, 17:41 | |
|
Помогаю со студенческими работами здесь
19
Как не учитывать строковые переменные (string) в матрице, вывести минимальные значения по строкам и столбцам? Найти минимальное из максимальных элементов и максимальное из минимальных элементов по строкам и по столбцам Определение индексов максимальных элементов по строкам и столбцам Двумерный массив, посчитать сумму элементов по строкам, столбцам и диагоналям
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|