Код для создания этих поверхностей написан в MATLAB, и он выводит входной файл, содержащий информацию об узлах и элементах.
Однако, поскольку я хочу использовать только Python, моя цель — ввести параметры, которые определяют размер и шероховатость поверхности в Python, передать эти аргументы в файл MATLAB. , а затем получите входной файл, содержащий узлы и элементы.
Код: Выделить всё
output_file = 'Cohesive_Behavior_Surface.inp'
if os.path.exists(file_path):
print("MATLAB 파일이 존재합니다.")
eng = matlab.engine.start_matlab()
python_dir = os.getcwd()
print(f"Python 작업 디렉토리: {python_dir}")
eng.addpath(file_dir)
eng.cd(python_dir, nargout=0)
matlab_dir = eng.pwd(nargout=1)
print(f"MATLAB 작업 디렉토리: {matlab_dir}")
print("MATLAB에서 Rand_surf 함수 실행 중...")
Nodes, Elements = eng.Rand_surf(1, 1, 0.2, 5, 30, 30, 0.05, 2.0, nargout=2)
Nodes_array = np.array(Nodes._data).reshape((Nodes.size[0], Nodes.size[1]), order='F')
Elements_array = np.array(Elements._data).reshape((Elements.size[0], Elements.size[1]), order='F')
print(f"Nodes 배열:\n{Nodes_array}")
print(f"Elements 배열:\n{Elements_array}")
print(f"Nodes 배열: {Nodes_array}")
print(f"Elements 배열: {Elements_array}")
При создании входного файла с помощью сценария Python значения узлов не выводятся, а значения элементов представляются только как 0, 1, -1.
В чем может быть причина такого несоответствия?
Подробнее здесь: https://stackoverflow.com/questions/790 ... and-python