
Error using textscan Invalid file identifier Use fopen to generate a valid file identifier in app designer
    3 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    sydney salvador
 le 28 Avr 2020
  
    
    
    
    
    Commenté : sydney salvador
 le 1 Mai 2020
            I use a button to upload my "Data.txt" file and another button to calculate and plot it into UIaxes but im having error in "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];
5 commentaires
Réponse acceptée
  Tommy
      
 le 30 Avr 2020
        
      Modifié(e) : Tommy
      
 le 30 Avr 2020
  
      It doesn't seem like your upload button stores anything. It saves the file and path into file and path and then exits, at which point the file and path are lost. This would work:
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
And then in your other callback:
function CalculateButtonPushed(app, event)
    fid=fopen(app.selectpath);
    seek=textscan(fid,'%f %f','headerlines',2);
    ...
10 commentaires
  Tommy
      
 le 1 Mai 2020
				Hmm... I'll assume you want to plot your sorted and trimmed y over your sorted and trimmed x, in which case you should try
plot(app.UIAxes,sortedXLimit,sortedYLimit)
If that's not what you want, could you provide the code which worked for you?
Plus de réponses (1)
  sydney salvador
 le 1 Mai 2020
        2 commentaires
  Tommy
      
 le 1 Mai 2020
				At this point I'd recommend you open a new question. If you do so, post a link here and I'd be more than happy to take a look!
Voir également
Catégories
				En savoir plus sur Creating, Deleting, and Querying Graphics Objects 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!



