2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 запуск exe файла в Matlab
Сообщение14.11.2012, 23:05 


02/02/09
53
Доброго времени суток.
передо мной стоит следующая задача - запустить из MATLAB'a exe программу
Код:
program.exe 1 2 3

где $1,2,3$ - параметры программы. Если параметры задавать непосредственно числами, то все выполняется замечательно, используя программу
Код:
system('program.exe 1 2 3')


Но мне необходимо задавать параметры переменными.$a,b,c$.. Погуглив нашел очевидное наверно решение:
Код:
>> f=strcat('program.exe', 32,num2str(a),32,num2str(b),32,num2str(c));
>> system(f);

Итак, вроде все должно получиться, но система выдает мне вот такую абракадабру и ничего не делает...:
Код:
"program.exe" ­Ґ пў«пҐвбп ў­гв७­Ґ© Ё«Ё ў­Ґи­Ґ©
Є®¬ ­¤®©, ЁбЇ®«­пҐ¬®© Їа®Ја ¬¬®© Ё«Ё Ї ЄҐв­л¬ д ©«®¬.


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

-- Чт ноя 15, 2012 00:19:28 --

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

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение14.11.2012, 23:27 
Заслуженный участник
Аватара пользователя


11/04/08
2748
Физтех
А если так
Код:
>> system(['program.exe ',num2str(a),' ',num2str(b),' ',num2str(c)]);

Проверьте, действительно ли a, b, c, которые вы используете в программе являются корректными числами. Посмотрите, что выдают num2str от a, b, c.

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 07:28 


02/02/09
53
выдает почти тот же ответ, единственное, что результат операции в моем случае - "0", в предложенном Вами варианте - "1". А "абракадабра" совершенно та же(((

переменные $a,b,c$ задают нужные значения, точнее они равны тому, что я вводил числами все работало. Далее функции
Код:
num2str(a),...
выдают как и ожидалось значения типа char.
еще попробовал конструкцию типа
Код:
!eval(['program.exe ', num2str(a),' ',num2str(b),' ',num2str(c)])


результат - тот же самый(((

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 08:11 
Заслуженный участник
Аватара пользователя


11/04/08
2748
Физтех
А какие значения принимают параметры a, b, c? Как вы их задаете? Еще попробуйте прописать полный путь к exe-файлу.

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 09:11 


02/02/09
53
Параметры $a,b,c$ принимают целочисленные значения. Задаю я их обычным способом присвоения
Код:
a=10;b=20;c=30
(вообще предполагается, что они будут результатов работы иной функции, но для тестирования задаю именно так, как указал). Полный путь к exe-файлу также прописывал, результат к сожалению тот же. Я не совсем пойму, от чего это может зависеть, ведь для фиксированных значений все работает и для неполного пути к файлу (exe-шник лежит в домашней директории), а тут вот какая история.. что вообще может значить эта «магическая» фраза :"... не является внутренней или внешней командой, исполняемой программой или пакетным файлом"?

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 11:13 
Заслуженный участник
Аватара пользователя


11/04/08
2748
Физтех
Хм. Если
Код:
>> system('program.exe 1 2 3')
работает, а
Код:
>> a=1; b=2; c=3;
>> system(['program.exe ',num2str(a),' ',num2str(b),' ',num2str(c)]);
не работает, то тогда не знаю, ведь в данном контексте это абсолютно одно и то же, с моей точки зрения.

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 12:37 


02/02/09
53
В том то и штука, что это одно и тоже (с Вами совершенно солидарен), но пишет ошибку. Погуглив, нашел, что большинство людей ссылаются на необходимость указания полного пути в названии exe-шника, либо изменении переменной PATH (что вроде как тоже тождественно вводу полного пути до исполняемого exe). Вот прямо голову разбиваю. :facepalm: А с чем по сути может связано сообщение "... не является внутренней или внешней командой, исполняемой программой или пакетным файлом"?

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 20:20 


02/02/09
53
либо у меня что-то с matlab' ом, либо мистика существует...либо все банальнее (и вероятнее) и я где-то облапошился...так или иначе я все сделал заново с самого начала. Учел все то, что описано в данной ветке... и о чудо, - все получилось. никаких ошибок и крокозябр... Огромное спасибо Вам ShMaxG за советы!!!

 Профиль  
                  
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 21:38 
Заслуженный участник
Аватара пользователя


11/04/08
2748
Физтех
buker
А, ну отлично :-) Иногда бывает полезным начать все сначала.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group