# Save Output in Text File

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

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

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

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

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

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

وشكرا جزيلا

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

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

``````fid = fopen(filename, permission)
``````

مثال

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

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

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

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

مثال

``````

``````

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

``````status = fclose(fid)
``````

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

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

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

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

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

او ناتج شبكة

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

a

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

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

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

[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.

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));
end
plotletters(NetLetters
``````

);

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

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

[/right]
[/left]

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

``````[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]

``````

طبعا مش هتقدر تحفظ الشبكة العصبية كلها مرة واحدة
??? 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
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
``````

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

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

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

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

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