Маткад не сохраняет файл

Обновлено: 06.07.2024

Продолжая публикацию избранных статей из готовящейся в издательстве "Новое знание" книги "Вычисления в MathCAD. Практическое руководство" и учитывая пожелания читателей "Компьютерной газеты", сегодня мы решили немного разобраться с таким небезынтересным с практической стороны вопросом, как взаимосвязь MathCAD и MS Excel в плане обмена данными между двумя этими системами, а также c принципами организации того же обмена, но уже в аспекте работы с обычными текстовыми ASCII-файлами.

Excel
В том случае, если вы хорошо владеете Excel, вам совершенно не обязательно осваивать многие разделы в MathCAD. К тому же, вопросы, связанные со статистической обработкой данных и всевозможными бизнес-задачами, решаются в нем гораздо проще (и возможности Excel в этих областях гораздо шире). С другой стороны, MathCAD обладает несравнимо более высоким потенциалом в сфере обработки экспериментальных данных (интерполяции, регрессии и экстраполяции), поэтому, даже если результаты ваших измерений были записаны в виде электронной таблицы, строить исходя из них графики и диаграммы все же лучше в нем.
Дело в том, что экспортировать данные из таблицы Excel в матрицу MathCAD можно просто скопировав их и вставив затем в пустую таблицу ввода. Однако провести обратную операцию (т.е. данные из матрицы MathCAD экспортировать в Excel) используя таблицу ввода (Input Table) не получится. Для выполнения этой задачи следует задействовать таблицу Excel как компонент MathCAD.
Компонентами в MathCAD называются приложения или объекты из других приложений, которые могут принимать непосредственное участие в работе создаваемого вычислительного алгоритма. Учитывая глобальность распространенности таких систем, как Excel или MatLab, возможность MathCAD осуществлять с ними согласованную работу просто неоценима, т.к. это значительно расширяет потенциал всех этих программ. Именно по этой причине создатели MathCAD посвятили целый раздел Центра Ресурсов (Extending MathCAD — подробно здесь мы его обсуждать не будем) примерам по использованию компонентов.
Для того чтобы установить один из компонентов, прежде всего вы должны открыть специальное диалоговое окно Component Wizard (Мастер компонентов). Сделать это можно при помощи команды Component (Компонент) меню Insert (Вставить) или, лучше, задействовав одноименную кнопку панели Standard (Стандартные).
В стандартной установке MathCAD компонентов совсем немного — около 10. Говорить обо всех мы не будем, а ограничимся освещением двух наиболее часто используемых. Необходимую информацию об остальных компонентах заинтересованный читатель сможет найти в справочной системе программы.
Чтобы вставить в документ MathCAD электронную таблицу Excel, выполните следующие операции:
— Запустите, задействовав соответствующую команду меню Insert (Вставить) или кнопку панели Standard (Стандартные), диалог Component Wizard (Мастер компонентов).
— В списке появившегося окна выберите строку Excel и нажмите кнопку Next (Далее).
— В открывшемся диалоговом окне Excel Setup Wizard (Мастер установки Excel) вы должны выбрать один из имеющихся параметров в зависимости от типа решаемой проблемы. Так, если вам требуется провести экспорт каких-то данных из MathCAD в Excel с целью их обработки, то активизируйте опцию Create an empty Excel worksheet (Создать пустой документ Excel). Если же вы собираетесь импортировать в MathCAD данные из существующего Excel-файла, то отметьте настройку Create from file (Создать из файла).
— Любой компонент может быть вставлен в документ MathCAD как в своем обычном виде (для Excel это будет таблица), так и в форме маленькой картинки — иконки (Icon). Никаких различий в работе с компонентом в этих двух формах не существует, поэтому выбор типа его вида должен определяться вашими предпочтениями и спецификой решаемой задачи (использование иконок позволяет значительно экономить место на документе). По умолчанию компонент вставляется в своем обычном виде. Для того чтобы представить его в форме иконки, задействуйте параметр Display as Icon (Отобразить как иконку) диалогового окна Excel Setup Wizard (Мастер установки Excel) (рис.1).

Рис.1. Иконка компонента Excel

— Когда все необходимые настройки в окне Excel Setup Wizard (Мастер установки Excel) будут сделаны, нажмите Next (Далее).
— При помощи опций появившейся второй страницы диалогового окна Excel Setup Wizard (Мастер установки Excel) вы должны определить, с какой ячейки будут читаться (или записываться) данные из документа Excel.
Практически это следует сделать с первой (A1) ячейки, так что вносить какие-либо изменения в принятые по умолчанию настройки вам почти наверняка не придется (рис.2).


Рис. 2. Настройка параметров компонента Excel

— Нажмите Finish (Готово).
В результате осуществления описанных выше действий в документе MathCAD появится таблица, очень похожая на обычную таблицу ввода (Input Table). В том случае, если вы вставляли пустой лист Excel, она будет содержать оператор присваивания (для того чтобы вы могли задать ей имя и работать в дальнейшем, как с обычной матрицей) и маркер, в котором вы должны прописать имя матрицы, данные из которой следует занести в таблицу.
Прочитав матрицу значений MathCAD в таблицу Excel, провести необходимые расчеты вы можете, просто выполнив по ней двойной левый щелчок мышью. При этом все рабочие панели MathCAD будут заменены инструментами Excel, и нужные преобразования можно будет сделать точно так же, как и при непосредственной загрузке программы. Выполнив затем щелчок мышью по рабочей области, вы вернетесь в нормальный режим.
В качестве примера согласованной работы MathCAD и Excel приведем расчет среднеквадратичного отклонения выборки, полученной при помощи генератора случайного равномерно распределенного числа rnd MathCAD с использованием специальной встроенной функции СТАНДОТКЛОН Excel. Результаты этого расчета представлены на рис.3.


Рис. 3. Работа с компонентом Excel


Рис.4. Ошибка при импортировании данных

— Пустые строки и столбцы, содержащие ASCII-текст, при считывании игнорируются.
MathCAD может не только импортировать, но и создавать на основании матриц структурированные .prn-файлы. Для этого в систему встроена специальная функция WRITEPRN("file"), где file — имя создаваемого файла. Интересной особенностью этой функции является то, что не она присваивается, а, наоборот, ей присваивается значение некоторой матрицы. Например, запись WRITEPRN("C:\Samples\ M.prn"):=M означает, что соответствующий матрице M ASCII-файл M.prn будет создан в корневой папке Samples диска С:.
Работая с функцией WRITEPRN, нужно учитывать следующие факты:
— В том случае, если вы пропишете только имя файла без пути к нему, WRITEPRN сохранит его в каталоге программы.
— WRITEPRN может создавать файлы не только с расширением .prn, но и в любом другом ASCII-формате, например, .dat или .txt. Расширение создаваемого файла вы задаете, когда прописываете его имя в скобках рассматриваемой функции.
— Если файл с указанным для WRITEPRN именем уже существует, то он автоматически заменяется без обычного для Windows предупреждения.
— В записанном при помощи WRITEPRN текстовом файле значения будут разделены пробелами. В качестве десятичного знака будет использована точка.
— По умолчанию количество знаков импортируемых из MathCAD численных данных ограничено 4. Хотя это и соответствует обычным правилам отображения чисел в MathCAD, в ряде случаев подобный подход может быть неприемлем. В том случае, если вам надо экспортировать данные с более высокой точностью, вы можете увеличить количество сохраняемых знаков. Для того чтобы это сделать, обратитесь к закладке Builds-In Variables (Системные переменные) диалогового окна Math Options (Математические опции) меню Math (Математические). Здесь в окошке параметра PRNPRECISION задайте необходимый уровень точности. Очевидно, что наибольшая величина PRNPRECISION должна равняться 16.
— Увеличивая точность экспортируемых данных, вы должны учитывать, что по умолчанию ширина столбца создаваемого WRITEPRN текстового файла соответствует 8 знакам. Следовательно, если PRNPRECISION превышает это значение, то ширину столбца следует увеличить (если этого не сделать, данные не сольются, однако значения в соседних столбцах будут расположены вплотную друг к другу, что значительно снижает наглядность). Сделать это можно при помощи параметра PRNCOLWIDTH закладки Build-in Variables (Системные переменные). Величина ширины столбца в MathCAD не лимитируется.
— Соответствующие определения для PRNPRECISION и PRNCOLWIDTH можно сделать и непосредственно в документе (аналогично TOL и CTOl), что гораздо проще и техничнее, чем использование закладки Build-in Variables (Системные переменные) диалогового окна Math Options (Математические опции).
— В том случае, если в исходной матрице содержались элементы с порядком, то в созданном при помощи WRITEPRN файле они будут представлены в инженерном формате.

Рис.5. Запись данных в текстовый файл при стандартных настройках

Иногда требуется не создать новый текстовый файл, а лишь добавить новую информацию к уже существующему. В MathCAD задачи такого рода можно решать при помощи функции APPENDPRN("file"), где file — имя файла (или путь к нему), к которому нужно дописать сведения. По особенностям своего синтаксиса функция APPENDPRN полностью соответствует функции WRITEPRN, поэтому останавливаться на этом вопросе мы не будем. Естественным условием при записи значений матрицы в конец некоторого текстового файла является то, что число их столбцов должно совпадать.
В предыдущих версиях MathCAD существовали специальные функции WRITE и APPEND, предназначенные для записи данных в неструктурированный текстовый файл. Однако начиная с версии программы 2001 года эти функции считаются устаревшими (что вполне оправданно, т.к. неструктурированный текст — это просто частный случай структурированного).
О функциях, предназначенных для чтения (и, соответственно, записи) данных из текстового файла (READPRN и WRITEPRN), мы довольно подробно говорили в предыдущей главе. Однако в MathCAD подобную работу можно выполнить и гораздо проще, обратившись к специальному компоненту File Read or Write (Прочитать или записать файл). Так, например, для того чтобы прочитать таблицу значений из .prn-файла в матрицу, следует:
— В окне Component Wizard (Мастер компонентов) выбрать строку File Read or Write (Прочитать или записать файл) и нажать Next (Далее).
— В появившемся диалоговом окне File Read or Write Wizard (Мастер записи или чтения файла) задействовать опцию Read from file (Читать из файла) и нажать кнопку Next (Далее).
— На следующей странице окна File Read or Write Wizard (Мастер записи или чтения файла) определить тип читаемого файла. Сделать это надо в списке File Format (Формат файла). В нашем случае нужно оставить определенный по умолчанию пункт Text Files (Текстовые файлы).
— Заполнить строку Enter the name of the file or data source which will be associated with this component (Введите имя файла или источника данных, который будет соединен с этим компонентом). В ней нужно прописать либо имя файла (если он сохранен в том же каталоге, что и MathCAD), либо путь к нему (для чего удобно использовать кнопку Browse (Обзор)).
— Нажать Next. При этом в документ MathCAD будет вставлен компонент в виде иконки с незаполненным оператором присваивания. Проименовав компонент, вы получите совершенно обычную матрицу, с которой можно будет проводить все допустимые в MathCAD преобразования (рис.6).

Рис.6. Чтение данных из текстового файла

Столь же просто, как и прочитать, вы можете записать текстовый файл, используя тот же компонент.
Кстати, при помощи компонента File Read or Write (Чтение или запись файла) вы можете считывать информацию из электронных таблиц, причем делается это даже легче, чем при использовании компонента Excel.

Компьютерная газета. Статья была опубликована в номере 02 за 2003 год в рубрике soft :: текст


Последний раз редактировалось SoftWeb; 12.03.2007 в 14:32 .

Делал дипломную работу в MathCade 11.a, выскочила ошибка типа " ошибка MathCada, сохранитесь"
Я сохранил файл, при этом на всякий случай сохранился еще в одном через "сохранить как". Теперь первый файл не открывается вообще (MathCad начинает грузиться затем вылетает) , Второй файл : загружается MathCad после загрузки выдает: "Ошибка загрузки документа". В этом файле вся моя работа, ЗАВТРА в 11 ЧАСОВ НАДО ПОКАЗЫВАТЬ.

Кто знает как можно файл восстановить или отредактировать, очень нужно, просто . как нужно.

Подскажите, чет я не смог крякнуть Mathcad не получилось. ( Знающие люди подскажите. я установил его без серийника, потом какие действия? В папке крек лежат два файла их нужно переписать в директорию куда я устанавливал маткад? Потом на вопрос о лицензии я выбираю файл лицензия в том же креке и . ошибка. Подскажите поподробнее что и как там делается а то руки корявые сам не могу . Буду оч. благодарен!

Pioneer добавил 29.06.2006 в 01:43
Я вроде разобрался как крякнуть , но дело в том что я уже испортил лицензию и мне выдает ошибку. даже после переустановки что делать помогите люди.

Те кто качал прогу с поста №6.. Залейте, плиз, отдельно русик..

Последний раз редактировалось d-view; 29.06.2006 в 08:58 . Плиз помогите сламать пароль которы спрашвает при редактировании в Mathcad очень надо буду признателин

Ребята, 11 версия у меня. проблема. пришлось мне удалить прогу и заново установить. но теперь проблема с лицензией. при каждом открытии программы - мне приходится указывать файл license.dat после чего выдается ошибка:


скачал выше упомянутую прогу для чистки реестра. объясните, что там именно удалять?

Добавлено через 7 минут
что здесь удалять? помогите:

Помогите пожайлуста сделать следующие задачки в MathCad 2000, очень нужно:
1. Расположенный на берегу реки металлургический завод осуществил сброс сточных вод, в результате чего концентрация вредных веществ в реке резко увеличилась. С течением времени эта концентрация, естественно, уменьшается. Требуется сообщить, каков будет уровень загрязнения реки через сутки, двое суток и т.д. до тех пор, пока концентрация не станет меньше предельно допустимой.

2. Органами милиции задержан грузовик с помидорами, похищенными на овощной базе. В городе всего четыре овощных баз, каждая из них получает помидоры из своего сельскохозяйственного района. Определить, с какой базы были вывезены помидоры. Расследование осложняется тем, что помидоры на всех базах одного сорта.

Заранее большое спасибо. И извеняюсь, если написал не в тот топик.

2. Органами милиции задержан грузовик с помидорами, похищенными на овощной базе. В городе всего четыре овощных баз, каждая из них получает помидоры из своего сельскохозяйственного района. Определить, с какой базы были вывезены помидоры. Расследование осложняется тем, что помидоры на всех базах одного сорта.

Используйте функции доступа к файлам для чтения и записи файлов следующих типов: двоичные, Excel, файлы данных, текстовые и PRN-файлы.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

В этом случае WRITEBIN записывает матрицу M в двоичный файл, задает байтовый формат данных и использует порядок байтов от младшего к старшему.

3. Используйте READBIN , чтобы читать двоичный файл без дополнительных параметров.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

По умолчанию READBIN читает данные как вектор. READBIN читает строки одну за другой в вектор M1 .

5. Используйте READBIN для чтения в двоичный файл и задайте дополнительные параметры, чтобы прочитать данные как матрицу с 5 столбцами.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

2. Используйте WRITEEXCEL , чтобы создать новый файл Excel и записать в него матрицу.

Нажать для копирования этого выражения

3. Используйте READEXCEL , чтобы читать данные из файла Excel и вычислить N .

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

5. Запишите транспонированную матрицу назад в файл Excel.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Некоторые ячейки исходной матрицы все еще находятся там. Исходный файл 1.xlsx содержал 2 столбца и 5 строк. На шаге 5 WRITEEXCEL переписывает две строки. Не была переписана нижняя часть двух исходных столбцов, т. е. ячейки от A3 до B5. READEXCEL заполняет пустые ячейки значениями NaN , чтобы создать полную матрицу.

1. Определите матрицу и используйте WRITEFILE , чтобы записать ее.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

2. Прочитайте данные из файла с помощью READFILE без дополнительных параметров.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

3. Используйте READFILE и определите все дополнительные параметры.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

В этом случае параметры задают для функции READFILE :

◦ чтение строк как столбцов данных фиксированной ширины;

◦ чтение каждого столбца как столбца шириной в один символ;

◦ использование символа "." (точка) как десятичного разделителя.

При обращении к индексам матрицы функции чтения начинают с 1.

1. Определите матрицу и запишите ее с помощью WRITETEXT .

Нажать для копирования этого выражения

Нажать для копирования этого выражения

В этом случае WRITETEXT записывает подматрицу M3 , начиная с индекса (1,1) и заканчивая индексом (5,5). Диапазоны определяются с помощью векторов с 2 элементами.

Когда выполняется запись в текстовый файл, индексы матрицы начинаются с (1,1), а не с (0,0). Значение ячейки (1,1) равняется 5, но, чтобы записать его, необходимо определить ячейку (2,2).

Нажать для копирования этого выражения

Нажать для копирования этого выражения

READTEXT читает в верхней части первые два столбца и четвертый столбец. Диапазон определяется с помощью строк. Параметр \t указывает, что числа разделяются знаком табуляции.

1. Определите матрицу и запишите ее подматрицу в файл с помощью WRITEPRN .

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

3. Используйте APPENDPRN , чтобы добавить M5 в конец созданного PRN-файла.

Нажать для копирования этого выражения

APPENDPRN добавляет данные в конец файла под исходной матрицей.

4. Используйте APPENDPRN , чтобы добавить матрицу с другим числом столбцов.

Нажать для копирования этого выражения

Вызов приводит к ошибке. Можно добавить матрицу только с тем же числом столбцов.

Используйте функции доступа к файлам для чтения и записи файлов следующих типов: двоичные, Excel, файлы данных, текстовые и PRN-файлы.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

В этом случае WRITEBIN записывает матрицу M в двоичный файл, задает байтовый формат данных и использует порядок байтов от младшего к старшему.

3. Используйте READBIN , чтобы читать двоичный файл без дополнительных параметров.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

По умолчанию READBIN читает данные как вектор. READBIN читает строки одну за другой в вектор M1 .

5. Используйте READBIN для чтения в двоичный файл и задайте дополнительные параметры, чтобы прочитать данные как матрицу с 5 столбцами.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

2. Используйте WRITEEXCEL , чтобы создать новый файл Excel и записать в него матрицу.

Нажать для копирования этого выражения

3. Используйте READEXCEL , чтобы читать данные из файла Excel и вычислить N .

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

5. Запишите транспонированную матрицу назад в файл Excel.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Некоторые ячейки исходной матрицы все еще находятся там. Исходный файл 1.xlsx содержал 2 столбца и 5 строк. На шаге 5 WRITEEXCEL переписывает две строки. Не была переписана нижняя часть двух исходных столбцов, т. е. ячейки от A3 до B5. READEXCEL заполняет пустые ячейки значениями NaN , чтобы создать полную матрицу.

1. Определите матрицу и используйте WRITEFILE , чтобы записать ее.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

2. Прочитайте данные из файла с помощью READFILE без дополнительных параметров.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

3. Используйте READFILE и определите все дополнительные параметры.

Нажать для копирования этого выражения

Нажать для копирования этого выражения

В этом случае параметры задают для функции READFILE :

◦ чтение строк как столбцов данных фиксированной ширины;

◦ чтение каждого столбца как столбца шириной в один символ;

◦ использование символа "." (точка) как десятичного разделителя.

При обращении к индексам матрицы функции чтения начинают с 1.

1. Определите матрицу и запишите ее с помощью WRITETEXT .

Нажать для копирования этого выражения

Нажать для копирования этого выражения

В этом случае WRITETEXT записывает подматрицу M3 , начиная с индекса (1,1) и заканчивая индексом (5,5). Диапазоны определяются с помощью векторов с 2 элементами.

Когда выполняется запись в текстовый файл, индексы матрицы начинаются с (1,1), а не с (0,0). Значение ячейки (1,1) равняется 5, но, чтобы записать его, необходимо определить ячейку (2,2).

Нажать для копирования этого выражения

Нажать для копирования этого выражения

READTEXT читает в верхней части первые два столбца и четвертый столбец. Диапазон определяется с помощью строк. Параметр \t указывает, что числа разделяются знаком табуляции.

1. Определите матрицу и запишите ее подматрицу в файл с помощью WRITEPRN .

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

Нажать для копирования этого выражения

3. Используйте APPENDPRN , чтобы добавить M5 в конец созданного PRN-файла.

Нажать для копирования этого выражения

APPENDPRN добавляет данные в конец файла под исходной матрицей.

4. Используйте APPENDPRN , чтобы добавить матрицу с другим числом столбцов.

Нажать для копирования этого выражения

Вызов приводит к ошибке. Можно добавить матрицу только с тем же числом столбцов.

Читайте также: