|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
||||||
Как создать двумерную матрицу из данных, хранящихся в файле25.09.2009, 22:27. Показов 3165. Ответов 10
Метки нет (Все метки)
Есть задача на работу с матрицей, находящейся в файле. На простом примере с фиксированным размером массива я ее решил, но не могу переделать для динамического массива. Проблема возникла с загрузкой данных из файла.
Для создания матрицы хотел использовать vector. Для одномерного массива все работает, но не как не могу сделать для двумерного массива. Помогите, пожалуйста, переделать код, чтобы можно было открыть двумерный массив из файла.
0
|
||||||
| 25.09.2009, 22:27 | |
|
Ответы с готовыми решениями:
10
Из заданного четного числа создать двумерную матрицу Как инициализировать двумерную матрицу натуральными логарифмами? |
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 25.09.2009, 23:13 | |
|
Стоп. С одномерным массивом (вектором) все ясно - сколько элементов есть в файле, столько же элементов в единственном измерении массива. Т.е., если файл содержит, например, 100 элементов - то это одномерный массив из 100 элементов, индексируемых от 0 до 99.
А вот как быть с двумерным массивом (матрицей)? Как ты собираешься определить число строк и столбцов? Например, если в файле содержатся 24 элемента - это с равным успехом могут быть матрицы размерности 2x12, 3x8, 4x6, 6x4, 8x3, 12x2 элементов (заметь, матрица 2x12 не эквивалентна матрице 12x2 !) - какую из них ты выберешь? А с ростом числа элементов - что будешь делать? Количество вариантов растет в геометрической прогрессии......
0
|
|
|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
|
| 26.09.2009, 08:15 [ТС] | |
|
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 26.09.2009, 08:49 | |
|
единственно, что если только отслеживать переход на новую строку 0х0A 0x0D, конечно, если данные в виде матрицы в файле. после первого первого возврата каретке количество считанных данный и будет фиксированная ширина матрицы.
Ну или думать вариант как обойти необходимость знания ширины матрицы и работать с одномерным массивом данных. задача же н была озвученна, может всё прозаичнее.
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 26.09.2009, 11:59 | |
|
Ну, в памяти компьютера, разумеется, никаких "матриц" нет вообще - все элементы матрицы хранятся как непрерывный массив значений; сначала непрерывно идут все элементы первой строки, потом сразу же за первой строкой - точно так же все элементы второй, потом третьей и так далее. То есть, если мы имеем матрицу размерности MxN (M столбцов, N строк), то для любого элемента elem[i][k] (i - строка, k - столбец) его положение (смещение от начала) легко вычислить: offset = i * M + k.
Конечно, ЕСЛИ данные в файле также уже организованы в виде матрицы, то количество элементов в строке и есть количество столбцов.... но - ЕСЛИ.
0
|
|
|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
||
| 26.09.2009, 18:45 [ТС] | ||
|
Как ее загрузить в программу? Размер таблицы все время меняется.
0
|
||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
||||||
| 26.09.2009, 23:12 | ||||||
|
Самое простое всё таки хранить в файле в первых двух числах размерность матрицы, но можно определить ширину вот таким извращённым способом
0
|
||||||
|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
||
| 26.09.2009, 23:26 [ТС] | ||
|
Извращенные способы я сам могу придумать. Но мне хотелось бы найти простой способ с использованием стандартных методов без создания собственных классов и обращения к библиотеке boost Я еще слабо владею С++, поэтому не хочу забираться в дебри. Неужели нет какого-нибудь простого способа загрузить матрицу из файла в программу?
0
|
||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
||
| 26.09.2009, 23:35 | ||
0
|
||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 27.09.2009, 15:03 | ||
Подробно опиши формат в котором эта матрица хранится в файле ! Тебе предлагают самый простой способ - сначала указать две размерности. Тебе это почему-то не нравится и хочется чего-то еще.
0
|
||
|
|
|||||||
| 17.09.2012, 17:51 | |||||||
|
Biblio, вот и все дела
0
|
|||||||
| 17.09.2012, 17:51 | |
|
Помогаю со студенческими работами здесь
11
Реализовать запись в файл и чтение из файла данных, хранящихся в массиве объектов пользовательского типа Запись данных,хранящихся в дереве Классы. Баз данных о хранящихся на складе товарах Разработать линейный список и реализовать алгоритм обработки данных, хранящихся в динамической структуре Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|