2014 dxdy logo

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

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




 
 запуск exe файла в Matlab
Сообщение14.11.2012, 23:05 
Доброго времени суток.
передо мной стоит следующая задача - запустить из 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 
Аватара пользователя
А если так
Код:
>> system(['program.exe ',num2str(a),' ',num2str(b),' ',num2str(c)]);

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

 
 
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 07:28 
выдает почти тот же ответ, единственное, что результат операции в моем случае - "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 
Аватара пользователя
А какие значения принимают параметры a, b, c? Как вы их задаете? Еще попробуйте прописать полный путь к exe-файлу.

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

 
 
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 11:13 
Аватара пользователя
Хм. Если
Код:
>> 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 
В том то и штука, что это одно и тоже (с Вами совершенно солидарен), но пишет ошибку. Погуглив, нашел, что большинство людей ссылаются на необходимость указания полного пути в названии exe-шника, либо изменении переменной PATH (что вроде как тоже тождественно вводу полного пути до исполняемого exe). Вот прямо голову разбиваю. :facepalm: А с чем по сути может связано сообщение "... не является внутренней или внешней командой, исполняемой программой или пакетным файлом"?

 
 
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 20:20 
либо у меня что-то с matlab' ом, либо мистика существует...либо все банальнее (и вероятнее) и я где-то облапошился...так или иначе я все сделал заново с самого начала. Учел все то, что описано в данной ветке... и о чудо, - все получилось. никаких ошибок и крокозябр... Огромное спасибо Вам ShMaxG за советы!!!

 
 
 
 Re: запуск exe файла в Matlab
Сообщение15.11.2012, 21:38 
Аватара пользователя
buker
А, ну отлично :-) Иногда бывает полезным начать все сначала.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group