انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نام دلخواه در دستور save

نام دلخواه در دستور save

#1
سلام ، در دستور save که محتوای workspace رو ذخیره میکنه ، چطور میتونیم نام دلخواه رو به فایل نسبت بدیم که یک مقدار باشه و همزمان با تغییر مقدار ، مقدار عددی هم در نام فایل ذخیره بشه مثلا اگر در یک m فایل از متغیری با مقدار 10 استفاده شده باشه : percent=10 در ذخیره mat فایل خروجی شماره 10  هم در کنار نام قرار داده شده برای فایل ذخیره بشه
save matrix_10 h.mat  میخوام که عدد 10 متغیر باشه و اگر percent شد 20 ، نام ذخیره mat فایل بشه : matrix_20.  لطفا کمکم کنید. ممنون
 
دوست دارم زندگی رو . . . 
پاسخ

نام دلخواه در دستور save

#2
سلام دوست عزیز.
شیوه معمولی ذخیره کردن متغیر، به این صورت می باشد :

کد:
clear all
close all
clc

A=10;
save('variable.mat','A');

 کد متلب بالا، فایلی با نام variable.mat می سازد که متغیر A در آن ذخیره شده است. 

حالا قصد داریم کدهای بالا را به صورتی تغییر بدهیم که مقدار متغیر A را به صورت یک پسوند، به نام فایل اضافه کند. برای این منظور، از دستور eval استفاده می کنیم که یک رشته را دریافت کرده و آن را به عنوان یک دستور در نظر می گیرد و اجرا می کند. موقتا کاری به افزودن مقدار متغیر به نام فایل نداریم و از دستور eval استفاده می کنیم تا همان کد بالا را اجرا کنیم :

کد:
clear all
close all
clc

A=10;
eval(['save(''variable.mat'',''A'')']);

نتیجه دقیقا مثل کد متلب قبلی می باشد. این رو نوشتم تا ابتدا با نحوه استفاده از دستور eval آشنا بشیم و هم یک نکته مهم رو تذکر بدم و اون نکته این هست که اگر بخواهیم یک رشته را درون دستور eval بنویسیم (یعنی یک رشته درون رشته ای که دستور eval دریافت می کند)، باید در دو طرف رشته، به جای یک بار استفاده از علامت '  ، دو بار این علامت را به کار ببریم. با نگاه به کد متلب بالا، به خوبی متوجه منظورم می شوید.

اکنون نوبت به کد نهایی می رسد :

کد:
clear all
close all
clc

A=10;
eval(['save(strcat(''variable-'',num2str(A),''.mat''),''A'')']);

کد متلب بالا، فایلی با نام variable-10.mat می سازد که متغیر A در آن ذخیره شده است.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط 4i469x ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان