How to remove a slash from fullfile?

9 次查看(过去 30 天)
I want the file path for wtf to read: 'C:\Users\jessi\Desktop\HydrusMC\Simulations\MC_1\Obs_Node.out'
but with the code as scripted below renders:
'C:\Users\jessi\Desktop\HydrusMC\Simulations\MC_\1\Obs_Node.out'
How do I drop the \ between the MC_ and the 1? I couldn't find any advise from other posts on this aspect of fullfile.
wtf= fullfile('C:\\','Users','jessi','Desktop','HydrusMC','Simulations','MC_',num2str(i),'Obs_Node.out');
  1 个评论
Stephen23
Stephen23 2022-9-12
This has nothing to do with FULLFILE, you can simply concatenate them together:
['MC_',num2str(i)]
or use a string:
"MC_"+i

请先登录,再进行评论。

回答(2 个)

Hiro Yoshino
Hiro Yoshino 2022-9-12
How about this?
wtf= fullfile('C:\\','Users','jessi','Desktop','HydrusMC','Simulations',("MC_"+num2str(1)),'Obs_Node.out')
wtf = "C:\\/Users/jessi/Desktop/HydrusMC/Simulations/MC_1/Obs_Node.out"
  2 个评论
Wesser
Wesser 2022-9-12
Worked! Thanks!
If it's ok to pile on a follow up questions....
I am getting the error:
Error using fgets
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in fgetl (line 32)
[tline,lt] = fgets(fid);
Error in Concentration (line 14)
x=fgetl(Node_conc);
in the below code. I posed this question yesterday and thought that resolving the file path issue would make the error go away, but it didn't. Any suggestions?Malab doesn't seem to like me using fgetl.... but why?
num_sim=1000; % Number of Monte Carlo Simulations
Node_CONC=zeros(57759,num_sim); %preallocation for output from all monte carlos
path=cell(1,num_sim);
for i=1:num_sim
wtf= fullfile('C:\\','Users','jessi','Desktop','HydrusMC','Simulations',("MC_"+num2str(i)),'Obs_Node.out');
Node_conc = fopen('wtf','r'); % Open monte carlo output file in Path (i)
skip_lines=11; %skip all the lines until the actually output data
for k=1:(skip_lines)
x=fgetl(Node_conc);
end
temp = fscanf(Node_conc,'%f',[5,57759]); %scan the matrix of data
TEMP = temp'; % transpose data
temp_Conc = TEMP(:,5); % select the 5th column (concentration)
Node_CONC(:,i) = temp_Conc(:); % save the concentration a new file, one column per iteration of loop
fclose(Node_conc);
end
%Node_CONC(:,1)=temp(:,2)
Hiro Yoshino
Hiro Yoshino 2022-9-13
wtf= fullfile('C:\\','Users','jessi','Desktop','HydrusMC','Simulations',("MC_"+num2str(i)),'Obs_Node.out');
Node_conc = fopen('wtf','r'); % Open monte carlo output file in Path (i)
You should pass the content of "wtf" to the function fopen.
In this case, you are passing the character array of 'wtf'.
You can tell the difference by checking out these as follows:
'wtf'
ans = 'wtf'
wtf= fullfile('C:\\','Users','jessi','Desktop','HydrusMC','Simulations',("MC_"+num2str(i)),'Obs_Node.out')
wtf = "C:\\/Users/jessi/Desktop/HydrusMC/Simulations/MC_0+1i/Obs_Node.out"

请先登录,再进行评论。


Voss
Voss 2022-9-12
Combine the 'MC_' and the i into a single argument.
Like this:
wtf= fullfile('C:\','Users','jessi','Desktop','HydrusMC','Simulations',['MC_' num2str(i)],'Obs_Node.out');
Or this:
wtf= fullfile('C:\','Users','jessi','Desktop','HydrusMC','Simulations',sprintf('MC_%d',i),'Obs_Node.out');

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品


版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by