0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 9
|
|
1 | |
Вложенный цикл for [Mathcad]10.01.2011, 13:05. Показов 15611. Ответов 8
Метки нет (Все метки)
Задана матрица.
Внешний цикл выбирает столбец матрицы и присваивает его переменной z. Внутренний цикл выбирает строковый элемент столбца сравнивает его и присваивает его переменной q. С помощью функции stack собирается "новый" столбец p - по идее по внутреннему циклу. После создания первого столбца, по идее, должен произойти выход из внутреннего цикла, выполниться добавление столбца в переменную d и начаться внешний цикл...и т.д. пока не сформируется новая матрица. Но это не работает. ПОЧЕМУ?
0
|
10.01.2011, 13:05 | |
Ответы с готовыми решениями:
8
Вложенный цикл for Mathcad Вложенный цикл Re: Вложенный в цикл условный оператор Как прервать вложенный цикл while ? |
2833 / 2130 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
|
|
10.01.2011, 15:37 | 2 |
Уважаемый(ая), Albe, вот ваши ошибки, которые бросаются в глаза сразу.
1. Совершенно не ясна задача, которую Вы ставите. 2. Вы не написали ORIGIN:=1, но цикл начинаете именно с единицы, а не с нуля. Кстати для чего-то обнуленный вектор d имеет размерность 5х1, а не 4х1, как можно было ожидать. 3. Выражение z<-- x<i> возвращает последний столбец матрицы Х. 4. Матрицу Х неплохо бы сделать входным параметром. Записать j(X)=... Мне трудно Вам помочь, поскольку мне не ясна постановка задачи. Изложите ее ясней и получите помощь.
1
|
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 9
|
|
10.01.2011, 18:58 [ТС] | 3 |
Да, надо обнулять переменную p перед вложенным циклом...вот в этом и проблема была...
С чего начинать цикл особого значения , нарно, не имеет...здесь. А вообще задача была такова: Загружается Изображение (получается матрица 499 на 499) (у меня было 4 на 4, так как долго просчитывалось 500 на 500)). После загрузки изображения, нужно перебрать каждый пиксел и изменить (или оставить неизменным) его значение, д.х. яркость - вырезать диапазон яркостей. Вот так все просто)) Нужно теперь избавиться от нулей в первом столбце (так как d у меня нулевое нач значение) и от нулей в первой строке (так как p обнуляю). И очень долго просчитывается весь этот цикл((( Как оптимизировать все это? Какими функциями нужно пользоваться?
0
|
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 4
|
|
03.11.2012, 14:04 | 4 |
Галина Борисовн, Здравствуйте помогте пожалуйста.
задан точечный рисунок (прямая под углом на белом фоне). в маткаде представили этот рисунок в виде матрицы с помощью функции ReadBmp. нужно найти длину это прямой, Для этого нужно создать "Строб" в виде матрицы 3*3. этот строб должен пробежать по матрице рисунка и обнаружив первую найденную точку прямой остановиться и дальше бежать по прямой подкиньте идеи как это реализовать
0
|
2833 / 2130 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
|
|
03.11.2012, 14:37 | 5 |
Если я правильно поняла, в полученной матрице нужно искать значения не равные 255. Причем поиск осуществляется не поэлементно, а рамкой-матрицей размером 3х3 ?
0
|
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 4
|
|
03.11.2012, 15:10 | 6 |
да, эта рамка-матрица должена пробежать по матрице рисунка и обнаружив первую найденную точку прямой (значения прямой в матрице 0), остановиться и дальше бежать по прямой
0
|
2833 / 2130 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
|
|
03.11.2012, 17:08 | 7 |
1. Заменить все элементы матрицы меньшие 255 нулями.
2. Найти индексы крайние левого и крайние правого ноля. 3. Посчитать тангенс угла наклона прямой, зная результаты п.2. 4. Создать рамку с помощью функции submatrix, параметры которой будут меняться при перемещении. Направление перемещения можно корректировать суммой элементов матрицы-рамки. Чем она меньше, теь правильней путь следования.
0
|
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 4
|
|
03.11.2012, 19:13 | 8 |
я разобралась как работает функция submatrix,
но я не понимаю как можно сделать чтобы его параметры менялись и с помощью чего можно перемещать матрицу-рамку извините я ранее никогда не программировала и с mathcad плохо знакома
0
|
2833 / 2130 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
|
|
03.11.2012, 19:19 | 9 |
Это делается в цикле. Познакомьтесь с программированием в Mathcad. Это серьезная не стандартная задача, нельзя подходить к ней с дилетантским наскоком.
0
|
03.11.2012, 19:19 | |
03.11.2012, 19:19 | |
Помогаю со студенческими работами здесь
9
Итерационный цикл с матрицами в Mathcad Цикл со ссылкой на внешний файл Mathcad Начать вложенный цикл не с первого элемента и по условию вернуться в основной цикл Как переделать данный цикл for во вложенный цикл foreach? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |