Мэтт, вы все еще работаете над этой проблемой?
Я не Matlab парень, но я знаком с файлом Nastran HDF5. Вы правы; 1,2 ГБ это большой, но не такой большой по сегодняшним меркам.
Возможно, вы сможете диагностировать горлышко производительности Matlab, выполнив тесты с различным числом строк в наборе данных EIGENVECTOR. Чтобы сделать это (без выполнения большого количества заданий Nastran), я создал простой код для создания файла HDF5 с определенным пользователем числом строк. Он имитирует структуру набора данных результатов Nastran Eigenvector. Смотри ниже:
import tables as tb
import numpy as np
hfile = tb.open_file('SO_54300107.h5','w')
eigen_dtype = np.dtype([('ID',int), ('X',float),('Y',float),('Z',float),
('RX',float),('RY',float),('RZ',float), ('DOMAIN_ID',int)])
fsize = 1000.0
isize = int(fsize)
recarr = np.recarray((isize,),dtype=eigen_dtype)
id_arr = np.arange(1,isize+1)
dom_arr = np.ones((isize,), dtype=int)
arr = np.array(np.arange(fsize))/fsize
recarr['ID'] = id_arr
recarr['X'] = arr
recarr['Y'] = arr
recarr['Z'] = arr
recarr['RX'] = arr
recarr['RY'] = arr
recarr['RZ'] = arr
recarr['DOMAIN_ID'] = dom_arr
modetable = hfile.create_table('/NASTRAN/RESULT/NODAL', 'EIGENVECTOR',
createparents=True, obj=recarr )
hfile.close()
Попробуйте запустить это с другими значениями для fsize (количество строк), затем прикрепите созданный файл HDF5 к matlab. Возможно, вы найдете момент, когда производительность заметно ухудшится.