.exe with inputs
16 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sergio Quesada
le 20 Juil 2018
Réponse apportée : Image Analyst
le 20 Juil 2018
Good afternoon,
I am new in MatLab, so I am no familiarized yet with making functions and programs. I have designed these lines to obtain some information from my data file called 'TR007-3_1FL.txt':
fID=fopen('TR007-3_1FL.txt','r');
A=0.017; Po=100;
formatSpec='%f %f'; sizeSpec=[2,Inf]; datos=fscanf(fID,formatSpec,sizeSpec); close('all');
vexp=datos(1,:);iexp=-1.*datos(2,:);ivexp=iexp.*vexp;jexp=iexp./A;jvexp=jexp.*vexp;
Voc=interp1(iexp,vexp,0)
Isc=interp1(vexp,iexp,0)
, and now I want to make it an .exe that can be executed on a PC without installing MatLab. I think I have the Compiler Toolbox, but I do not know how to make the program a function that asks me to enter different files names and 'A' and 'Po' parameters for each different file to analyze. Could you please give me any help?
Thank you so much !
0 commentaires
Réponse acceptée
Fangjun Jiang
le 20 Juil 2018
use uigetfile() to allow user to pick a file.
use input() to allow user to input a value.
After you test out your new program, run "deploytool" to compile your program to a stand-alone application, assume you have all the Toolbox needed.
2 commentaires
Sergio Quesada
le 20 Juil 2018
Modifié(e) : Sergio Quesada
le 20 Juil 2018
Image Analyst
le 20 Juil 2018
Give the code and the entire error message - ALL the red text or error text in the console window.
Plus de réponses (1)
Image Analyst
le 20 Juil 2018
Simply call uigetfile() to ask the user for a file:
% Have user browse for a file, from a specified "starting folder."
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = pwd; % or 'C:\wherever';
if ~exist(startingFolder, 'dir')
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.*');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)
To ask the user for an integer number, do this:
% Ask user for one integer number.
defaultValue = 45;
titleBar = 'Enter an integer value';
userPrompt = 'Enter the integer';
caUserInput = inputdlg(userPrompt, titleBar, 1, {num2str(defaultValue)});
if isempty(caUserInput),return,end; % Bail out if they clicked Cancel.
% Round to nearest integer in case they entered a floating point number.
integerValue = round(str2double(cell2mat(caUserInput)));
% Check for a valid integer.
if isnan(integerValue)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
integerValue = defaultValue;
message = sprintf('I said it had to be an integer.\nTry replacing the user.\nI will use %d and continue.', integerValue);
uiwait(warndlg(message));
end
To ask the user for a couple of floating point numbers, do this:
% Ask user for two floating point numbers.
defaultValue = {'45.67', '78.91'}; % Whatever you want.
titleBar = 'Enter a value';
userPrompt = {'Enter floating point number 1 : ', 'Enter floating point number 2: '};
caUserInput = inputdlg(userPrompt, titleBar, 1, defaultValue);
if isempty(caUserInput),return,end; % Bail out if they clicked Cancel.
% Convert to floating point from string.
usersValue1 = str2double(caUserInput{1})
usersValue2 = str2double(caUserInput{2})
% Check usersValue1 for validity.
if isnan(usersValue1)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into usersValue1.
usersValue1 = str2double(defaultValue{1});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', usersValue1);
uiwait(warndlg(message));
end
% Do the same for usersValue2
% Check usersValue2 for validity.
if isnan(usersValue2)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into usersValue2.
usersValue2 = str2double(defaultValue{2});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', usersValue2);
uiwait(warndlg(message));
end
Adapt as needed.
0 commentaires
Voir également
Catégories
En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!