Save Output in Text File


(system) #1

السلام عليكم ورحمة الله وبركاته

لو سمحتم لدي استفسار بسيط عن دالة تقوم بحفظ المخرجات

سواء كانت على شكل مصفوفة أو على شكل نص في ملف نصي

وجدت أكثر من خوارزمية لكن عند تطبيقها يتم حفظ رموز غير صحيحة داخل الملف

انا في حاجة لمعرفة هذا الامر بأسرع وقت

وكل أملي تعاونكم معي

وشكرا جزيلا


#2

اولا قم بعمل ملف نصى على الهارد ديسك وليكن اسمه
almohandes.txt

استخدام الامر الاتى لفتح الملف

fid = fopen(filename, permission)

مثال

FID = fopen('almohandes.txt','w');

وتعنى ان لديك تصريح الكتابة على هذا الملف

ثم الكتابه على الملف المفتوح

count = fprintf(fid, format, A, ...)

مثال


link = 'www.almohandes.org';
fprintf(FID,'%s',link)

وفى النهاية اغلاق الملف

status = fclose(fid)

وهذا المثال كامل


FID = fopen('almohandes.txt','w');
link = 'www.almohandes.org';
fprintf(FID,'%s',link)
fclose(FID)

(system) #3

شكرا لك أستاذ أحمد على ردك …

لقد جربت الكود وهو يعمل بشكل صحيح

لكن عندما أريده أن يقوم بحفظ قيمة متغير

او ناتج شبكة

يظهر لي داخل الملف النصي بعد الحفظ مربعات فارغة

a

وهنا تكمن المشكلة

ولك الشكر الجزيل


#4

ممكن ترسلى الكود الذى تحاول تطبيقه فى الملف النصى الذى تحاول الحفظ فيه ؟


(system) #5

[LEFT][

alphabet,targets] = prprob; %Built in data set in Matlab
plotletters(alphabet); %We wrote this function to display the characters
net = newff(minmax(alphabet),[10 26],{'logsig' 'logsig'},'traingdx');
%These values are set to give better training results (initialization of
%the weights and biases should be small here)
net.LW{2,1} = net.LW{2,1}*0.01;
net.b{2} = net.b{2}*0.01;
net.performFcn = 'sse'; % Sum-Squared Error performance function
net.trainParam.goal = 0.1; % Sum-squared error goal.
net.trainParam.show = 20; % Frequency of progress displays (in epochs).
net.trainParam.epochs = 5000; % Maximum number of epochs to train.
net.trainParam.mc = 0.95; % Momentum constant.

% Training begins...please wait...
P = alphabet;
noisyP=alphabet+randn(size(alphabet))*0.4;
T = targets;
[net,tr] = train(net,P,T);
[net,tr] = train(net,noisyP,T);
%Test on new noisy data
noisyP = alphabet+randn(size(alphabet)) *0.05;
plotletters(noisyP);
A2 = sim(net,noisyP);
for j=1:26 %Number of noisy letters
A3 = compet(A2(:,j));
answer(j) = find(compet(A3) == 1);
end
NetLetters=alphabet(:,answer);
plotletters(NetLetters

);

[RIGHT]على سبيل المثال اريد حفظ الـ net وأريد حفظ الـ answer

ما الدوال التي علي استخدامها ؟

[/right]
[/left]


#6

??? Undefined function or method ‘plotletters’ for input arguments of type ‘double’.


(system) #7
[LEFT]function plotletters(alphabet);
[m,n]=size(alphabet);
if m~=35
error('plotletters needs columns 35 numbers long');
end
figure
MM=colormap(gray);
MM=MM(end:-1:1,:);
colormap(MM);
nn=min([n,26]);
for j=1:nn
subplot(2,13,j)
imagesc(reshape(alphabet(:,j),5,7)');
axis equal
axis off
end

[/left]


#8

طبعا مش هتقدر تحفظ الشبكة العصبية كلها مرة واحدة
??? Error using ==> fprintf
Function is not defined for ‘network’ inputs.

لكن ممكن تعملها جزء جزء زى كده ودا اشتغل معايا تمام بدون اى مشاكل


FID = fopen('almohandes.txt','w');
fprintf(FID,'%s',net.performFcn)
fclose(FID)

وايضا

FID = fopen('almohandes.txt','wt');
fprintf(FID,'%6.2f %12.8f
',answer)
fclose(FID)
>> type almohandes.txt

  1.00   2.00000000
  3.00   4.00000000
  5.00   6.00000000
  7.00   8.00000000
  9.00  10.00000000
 11.00  12.00000000
 13.00  14.00000000
 15.00  16.00000000
 17.00  18.00000000
 19.00  20.00000000
 21.00  22.00000000
 23.00  24.00000000
 25.00  26.00000000

(system) #9

شكرا جزيـــــــــــــلا يا مهندس أحمد

ربي يجزاك ألف خير

في ميزان حسناتك يارب

طبقته وضبط معاي الحمد لله


#10

العفو اخى واذا لم يمكن لديك نرجو مشروعك فى المنتدى قد يكون مفيدا للاخرين وخاصا فى مجال الشبكات العصبية