MATLAB: erreur lors de l’utilisation de TextScan Identifiant de fichier non valide Utilisez fopen pour générer un identifiant de fichier valide dans le concepteur d’application

J’utilise un bouton pour télécharger mon fichier « Data.txt » et un autre bouton pour le calculer et le tracer dans les UIaxes mais j’ai une erreur dans « fid = fopen »
 
properties (Access = public)
selectpath='';
end
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: UploadButton
function UploadButtonPushed(app, event)
[file,path] = uigetfile('*.txt')
end
% Button pushed function: CalculateButton
function CalculateButtonPushed(app, event)
fid=fopen(Data.txt(app.selectpath));
fclose(fid); %Error using textscan
% Invalid file identifier.
% Use fopen to generate a valid file identifier.
seek=textscan(fid,'%f %f','headerlines',2);
g = cell2mat(seek);
x=g(:,1);
y=g(:,2);
[sortedX, sortIndex] = sort(x);
sortedY = y(sortIndex);
sortedXLimit = sortedX(1:160,:);
sortedYLimit = sortedY(1:160,:);
plot(app.UIAxes,value*peaks) %for the graph
app.UIAxes.YLim = [0 205];
 

Meilleure réponse

  • Il ne semble pas que votre bouton de téléchargement stocke quoi que ce soit. Il enregistre le fichier et le chemin dansfichieretcheminpuis quitte, à quel point le fichier et le chemin d’accès sont perdus. Cela fonctionnerait:
     
    function UploadButtonPushed(app, event)
    [file,path] = uigetfile('*.txt');
    if file == 0
    % handle case where user clicks cancel
    else
    app.selectpath = fullfile(path, file);
    end
    end
     
    Et puis dans votre autre rappel:
     

    function CalculateButtonPushed(app, event)
    fid=fopen(app.selectpath);
    seek=textscan(fid,'%f %f','headerlines',2);
    ...