How to check whether multiple variables are numeric using a loop
    4 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi everyone,
My problem is how to check whether a variable within the workspace is numeric. I know about "isnumeric" the problem I have is trying to actually get MATLAB to tell me whether the variable content is numeric and not the string that I use within my loops to identify the variable within the workspace.
The attached code forms part of a conditional set of instruction on how to load in data, depending on whether it exists (non pre-allocated memory) or is an actual file.
Could you help?
Many thanks
D_mat_SA_search_master = ["D_mat_N_sqz_27.mat"	"D_mat_G_sqz_27.mat"]
for aa = 1:size(D_mat_SA_search_master,2)
        File_loc_ID = fullfile(Main_sim_directory,D_mat_SA_search_master(Main_loop,aa));
        %If variable not in WS and is a file - load up
        if ~isnumeric(contains(WS,D_mat_search(aa))) && isfile(File_loc_ID) % Problem here 
            isfile(File_loc_ID)
            File_loc_ID = string(File_loc_ID);
            importdata(File_loc_ID);
            fprintf ('Loading - %s \n.',string(File_loc_ID));
            continue   
        % Variable is present from loading - skip to next section    
        elseif isnumeric(contains(WS,D_mat_search(aa)))
            continue
            % skip this
        % Variables need to be calculated and saved   
        else            
       % Do stuff             
    end
end
1 个评论
  Matt J
      
      
 2021-6-7
				and not the string that I use within my loops to identify the variable within the workspace.
It is bad practice to be assigning names dynamically to data read in from files,
采纳的回答
  Matt J
      
      
 2021-6-7
        varname=D_mat_search(aa);
if exist(varname,'var') && isnumeric(eval(varname)) && isfile(File_loc_ID)  %BAD
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Data Type Identification 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

