Вычисления, храня и получая значения к и от N-мерной матрицы

Этот вопрос, вероятно, очень отличается от того, что Вы привыкли читать здесь - я надеюсь, что он может обеспечить забавную проблему.

По существу у меня есть алгоритм, который использует 5 (или больше) переменные для вычислений единственного значения, названного outcome. Теперь я должен реализовать этот алгоритм на встроенном устройстве, которое не имеет никаких ограничений памяти, но имеет очень резкие ограничения обработки.

Из-за этого я хотел бы выполнить механизм вычисления, который вычисляет outcome для, скажем, 20 различных значений каждой переменной и хранит эту информацию в файле. Можно думать об этом как о 5 (или больше) - размерной матрице или 5 (или больше) - размерный массив, при этом каждый размер является 20 записями долго.

На любом современном языке, заполняя этот массив так же просто как наличие 5 (или больше) вложенный for циклы. Хитрая часть - то, что я должен вывести эти значения в файл, который может затем быть помещен на встроенное устройство так, чтобы устройство могло использовать его в качестве справочной таблицы.

Вопросы теперь:

  1. Какой формат (форматы) мог бы быть приемлемым для того, чтобы хранить данные?
  2. Какие программы (MATLAB, C#, и т.д.) могли бы подойти лучше всего для вычислений данных?
  3. C# должен использоваться для импорта данных по устройству - действительно ли это возможно, учитывая ответ на № 1?

Править: Действительно ли возможно читать из моего файла справочной таблицы, не читая весь файл в память? Можно ли объяснить, как это могло бы быть сделано в C#?

1
задан Adam S 1 June 2010 в 21:57
поделиться

2 ответа

Я также прокомментирую 1 и 3. Может быть предпочтительнее использовать выходной файл фиксированной ширины, а не CSV. Он может занимать больше или меньше места, чем CSV, в зависимости от выходных чисел. Однако, как правило, это хорошо подходит для таблиц поиска, поскольку выяснить, где искать в файле данных фиксированной ширины, можно без чтения всего файла. Обычно это важно для поисковой таблицы.

Данные фиксированной ширины, как и CSV, тривиальны для чтения и записи. Некоторые языки, ориентированные на математику, могут предложить слабую функциональность манипулирования строками и двоичными данными, но преобразовать данные в фиксированную ширину на этапе импорта должно быть очень просто.

На вопрос 2 ответить сложнее, особенно если не знать, какой алгоритм вы вычисляете. Matlab и подобные программы, как правило, отлично справляются с определенными типами вычислений и часто имеют много встроенных средств, облегчающих их. При этом многие математические вещи, встроенные в такие языки, доступны для других языков в виде библиотек.

2
ответ дан 3 September 2019 в 00:08
поделиться

Я прокомментирую (1) и (3). Все, что вам нужно сделать, это выгрузить данные по фрагментам. Выберите обход и выгрузите данные в указанном порядке. Запишите это как числа, разделенные запятыми.

0
ответ дан 3 September 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: