Need to save values of a variable into a new column of asc file for each iteration of a for loop
2 次查看(过去 30 天)
显示 更早的评论
Ndisvec=[.5 2 8 32 128]*10^11; %Set of density values
figure(1025)
clf(1025)
figure(1025)
hold on
set(gca, 'XScale', 'log', 'YScale', 'log')
%Riemann sum
x=[0:0025:1-.005];
I=[1:length(kf)];
for z=1:length(kf);
kfh=kf(z);
y=((x+(qtf/(2*kfh))).^2.*sqrt(1-x.^2)).^-1;
I(z)=sum(y)*.0025;
end
for z=1:length(Ndisvec)
Ndis=Ndisvec(z);
tau=hb^3*(epo*epb*co)^2/(Ndis*meff*e^4*f^2)*16*pi*kf.^4./(I*sqrt(2));
muDIS1=e*tau/meff;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
loglog(n(1,:)*10^-15,muDIS1(1,:)); %deleted 10^-4
end
figure(1025)
I need to print the values of muDIS1 into a new column for each iteration of the for loop (it will run 5 times). At the end i need an asc file which will have columns of data. I have been playing around with the fopen/fprintf functions but have had no luck. I made a for loop----- for muDIS1(z) and the fprintf just under muDIS1 fclose after i end the loop that didnt work
2 个评论
Daniel Frisch
2017-8-7
Please give an example of the vector muDis1 for one row and the resulting wanted line in the asc file.
采纳的回答
Jan
2017-8-7
Start with collecting the data:
muDIS1 = zeros(length(Ndisvec), ????) % Set accordingly
for z = 1:length(Ndisvec)
Ndis = Ndisvec(z);
tau = hb^3*(epo*epb*co)^2/(Ndis*meff*e^4*f^2)*16*pi*kf.^4./(I*sqrt(2));
muDIS1(z, :) = e*tau/meff;
loglog(n(1,:)*1e-15,muDIS1(z,:)); %deleted 10^-4
end
Now you can write the matrix at once using fopen, fprintf and flcose. Please try it and post the relevant code, if you still have problems.
PS: Note that 10^-15 is an expensive power operation, while 1e-15 is a cheap constant.
3 个评论
Jan
2017-8-8
编辑:Jan
2017-8-8
If you do not want a line break after each value, do not insert a line break after each value:
fprintf(fileID, '%5.2f, %5.2f, %5.2f, %5.2f, %5.2f, %d\n', muDIS1);
Omit the useless code "length(muDIS1); muDIS1".
You can either insert the output to the file into the loop, or create matrix as shown in my code and write the file at once, which is expected to be faster.
Using '\r\n' instead of '\n' is needed, if you really want to display the file in the Windows NotePad. All other editors accept '\n' directly for decades.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!