Перейти к публикации

Вывод 2D массива в файл


MaryMadeleine

Рекомендованные сообщения

Доброго времени суток!

 

Знаю, что тема не новая, но нигде толкового ничего найти не могу. Задача простая - есть 2D массив (m x n) элементов, нужно записать его в текстовый файл. Я не понимаю, как пользоваться *MWRITE, поэтому всю жизнь писал в столбик через *VWRITE и потом преобразовывал обратно в матрицу. Подскажите, пожалуйста, как вывести массив в таком же виде в файл? То есть m строк и n столбцов. Можно ли в ANSYS писать значения по одному в строку, чтобы он автоматом не делал перенос строки (*VWRITE все пишет с новой строки)?

 

Я вот так пытался, но получается не пойми-что:

 

*dim,test,array,5,7

*do,i,1,5
*do,j,1,7
test(i,j)=i*7+j
*enddo
*enddo

*create,macro

*vlen,5,7
*mwrite,test,test,txt
(E11.3)
*end

/input,macro

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts

Не уверен, что это именно то, что вам нужно, но вот пример макроса:

*CREATE,reaction
*cfopen,Results,txt,,append
*vwrite,Angle,ReactY,ReactZ,MomX,
(F3.0,'  ',F15.5,'  ',F15.5,'  ',F15.5)
*cfclos
*END

Вот результат, который он выдает:

 0.       2513.27412          0.00000          0.00000
 5.       2494.20589        217.95088         -6.57139
10.       2437.58058        429.27943        -13.09276
15.       2345.11871        627.56455        -19.51450
20.       2219.62970        806.78143        -25.78771
25.       2064.92646        961.48467        -31.86467
....

 

Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, Dandy сказал:

Не уверен, что это именно то, что вам нужно, но вот пример макроса:


*CREATE,reaction
*cfopen,Results,txt,,append
*vwrite,Angle,ReactY,ReactZ,MomX,
(F3.0,'  ',F15.5,'  ',F15.5,'  ',F15.5)
*cfclos
*END

Вот результат, который он выдает:


 0.       2513.27412          0.00000          0.00000
 5.       2494.20589        217.95088         -6.57139
10.       2437.58058        429.27943        -13.09276
15.       2345.11871        627.56455        -19.51450
20.       2219.62970        806.78143        -25.78771
25.       2064.92646        961.48467        -31.86467
....

 

Ну да, это то, о чем я писал: тут руками приходится писать в строку элементы, которые я хочу вывести, т.е. "Angle,ReactY,ReactZ,MomX". Мой вопрос был о том, можно ли вывести вот так же в строчку любое число элементов матрицы, например, n = 1000.

Ссылка на сообщение
Поделиться на других сайтах
В 21.10.2020 в 14:52, MaryMadeleine сказал:

*vlen,5,7
*mwrite,test,test,txt
(E11.3)

 

заменить на...

 

*mwrite,test,test,txt
(7E11.3)

 

Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, Борман сказал:

*mwrite,test,test,txt (7E11.3)

О, спасибо, это работает. А есть возможность в формат (7E11.3) вместо 7 засунуть параметр?

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, MaryMadeleine сказал:

О, спасибо, это работает. А есть возможность в формат (7E11.3) вместо 7 засунуть параметр?

Наэрно нет.

Ссылка на сообщение
Поделиться на других сайтах

Вот чёрт... проще вам попробовать самому врубиться, чем мне объяснять что тут происходит :lighten:

*dim,test,array,5,7

*do,i,1,5
*do,j,1,7
	test(i,j)=i*7+j
*enddo
*enddo

par=7

*cfopen,hack.mac
	s1='*mwrite,test,test,txt'
	*vwrite,s1,par
%c%/(%iE11.3)
*cfclose

*use,hack.mac
/delete,hack.mac

 

Ссылка на сообщение
Поделиться на других сайтах
В 22.10.2020 в 20:47, Борман сказал:

Наэрно нет.

Есть. Надо просто записать макрос из-под макроса, а потом считать его.

Собственно, что и делается здесь:

В 22.10.2020 в 21:08, Борман сказал:

*dim,test,array,5,7 *do,i,1,5 *do,j,1,7 test(i,j)=i*7+j *enddo *enddo par=7 *cfopen,hack.mac s1='*mwrite,test,test,txt' *vwrite,s1,par %c%/(%iE11.3) *cfclose *use,hack.mac /delete,hack.mac

 

Вот ещё от меня примерчик (как у меня водится, с COM'ом):

/OUTPUT,exec !Начинаем писать в файл

/COM, *MWRITE,fi_x,fi_x,txt,,JIK,n,pts,1 !Записываем сам текст команды MWRITE

/COM, (%n%(1x,E20.13)) !Записываем формат с параметром n

/OUTPUT !Перекидываем вывод обратно в консоль

/INPUT,exec !Считываем полученный макрос

/COM можно заменить на любой другой способ записи в файл, а сам файл можно почистить после считывания для сохранения экологии.

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • gudstartup
      как это если а куда он денется ведь чпу пока работает только глючит
    • Viktor2004
      если на плате уже есть файл OPRMINF, он и будет работать. Переписывать его не надо. Все опции которые в него записаны будут работать. Если же вы попытаетесь переписать его, тогда он при включении потребует сертификацию. Потому что бутлоадер при переписывании сам внесет в него флажок о том что произошло вмешательство в опции
    • gudstartup
      да.     ранее приезжал японец вводил файл и все еще и ваш старый cpu dram модуль надо поставить тогда все заработает как надо а вы слили все системные файлы?
    • Fedor
    • mrVladimir
      То есть, если залить на новый from модуль все наши слитые архивы, никаких опций не будет, пока мы не зальем файл OPRMINF ? Но и после заливки этого файла потребуется эти опции еще и сертифицировать. Так? А как выглядит процесс сертификации? Это самим можно сделать? Может где-то подробно про это расписано - может подскажет кто.  И еще, а если, как говорил Виктор, ничего не делая со старым модулем FROM, поставить его на новую материнскую плату, то все опции и их сертификация должны по идее остаться? Так ведь? @gudstartup , спасибо за контакты  продавцов - будем думать.  
    • paull3
      Добрый вечер!, принято, скачал -СПАСИБО ОГРОМНОЕ!!! завтра буду пробовать, если не затруднит напишите пожалуйста в каком положении должен быть переключатель на передней дверце .  последовательность вижу так - разархивирую на дискету- в моём случае флешку так ка стоит эмулятор,  вставляю флешку и включаю стойку чпу далее как повезёт естественно перед этим батарейку проверю и заменю всё верно?  
    • eljer0n
      Так, нашел кусок дискуссии в этой теме, плюс проверил в спецификации, видимо, с трехзначным кодом исполнения засада, а очень жаль. Предыдущий вопрос снимается.
    • Akabanks87
      Спасибо за ответ. Попробую разобраться... мб встречали какой-то наводящий материал? тема или видео на ютубе? Жесткость вращения нужно по всем осям задавать, должен же быть способ проще...
    • mamomot
      Делал неоднократно для нескольких фирм, которые разали нам металл на лазерной резке. 1. Делаем развертку отдельно без всего в масштабе 1:1. 2. Делаем обязательно линиями НУЛЕВОЙ ТОЛЩИНЫ! 3. Никаких осевых, размеров и другого мусора. Только контуры... 4. Выставляли еще требования отрисовки развертки на каком-то слое, но я обычно клал на это требование...
    • Chertezhnik
      Добрый день! Подскажите, как отобразить компоновочную геометрию из 3D модели на 2D чертеж. Могу ли я сделать на ней разрезы?
×
×
  • Создать...