English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
إنشاء النصوص في MATLAB بسيط للغاية. في الواقع، استخدمناها كثيرًا. على سبيل المثال، يمكنك إدخال ما يلي في محطة الأوامر-
my_string = 'oldtoolbag.com'
سيقوم MATLAB بتنفيذ الجملة السابقة ويعود بالنتيجة التالية-
my_string = oldtoolbag.com
يعد MATLAB جميع المتغيرات مصفوفات، ويتم اعتبار النصوص مصفوفات نصية. دعونا نستخدمwhosللتحقق من المتغيرات التي تم إنشاؤها في الأعلى-
whos
سيقوم MATLAB بتنفيذ الجملة السابقة ويعود بالنتيجة التالية-
الاسم حجم الحجم الفئة الصفات my_string 1x16 32 char
من المثير للاهتمام، يمكنك استخدام وظائف التحويل الرقمية مثلuint8أوuint16لتحويل أحرف النص إلى رموزها الرقمية.charيحول الدالة المتجهات الصحيحة إلى نص-
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
my_string = 'w3codebox's com'; str_ascii = uint8(my_string) % 8-bit ascii value str_ascii = char(str_ascii) str_16bit = uint16(my_string) % 16-bit ascii value str_back_to_char = char(str_16bit)
عند تشغيل الملف، يظهر النتيجة التالية -
str_ascii = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com str_16bit = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com
حتى الآن، النصوص التي ناقشناها كانت مصفوفات نصية خطية. ولكن نحتاج إلى تخزين المزيد. نحتاج إلى تخزين بيانات نصية متعددة الأبعاد في البرنامج. يتم تحقيق ذلك عن طريق إنشاء مصفوفة نصية مستقيمة.
أبسط طريقة لإنشاء مصفوفة نصية مستقيمة هي ربط اثنين أو أكثر من مصفوفات نصية خطية عموديًا أو أفقيًا حسب الحاجة.
يمكنك جمع السلاسل العمودية بطرقين:
استخدام عمودي MATLAB []، وتفصل بين كل سطر بفاصلة سيارة (؛). يرجى ملاحظة أن في هذا الأسلوب يجب أن يحتوي كل سطر على عدد متساوي من الحروف. للسلاسل بطول مختلف، يجب استخدام مسافات الفراغ لملء الحاجة.
استخدام دالة char. إذا كانت طول السلاسل مختلفة، تستخدم char المسافات الزائدة في النهاية لتعبئة السلاسل القصيرة، لجعل كل سطر يحتوي على عدد متساوي من الحروف.
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
doc_profile = ['Zara Ali '; ... 'Sr. Surgeon '; ... 'R N Tagore Cardiology Research Center'] doc_profile = char('Zara Ali', 'Sr. Surgeon', ... 'RN Tagore Cardiology Research Center')
عند تشغيل الملف، يظهر النتيجة التالية -
doc_profile = Zara Ali Sr. Surgeon R N Tagore Cardiology Research Center doc_profile = Zara Ali Sr. Surgeon RN Tagore Cardiology Research Center
يمكنك جمع السلاسل الأفقية بطرقين:
استخدام عموديMATLAB[]، وتفصل بين السلاسل النصية المدخلة بالكوما أو المسافة. هذا الأسلوب يحافظ على جميع المسافات الزائدة في مصفوفة الإدخال.
استخدام دالة الربط الثابت strcat، هذه الطريقة تزيل المسافات الزائدة في النهاية من الإدخال.
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = [name ', ' position ', ' worksAt] profile = strcat(name, ', ', position, ', ', worksAt)
عند تشغيل الملف، يظهر النتيجة التالية -
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center profile = Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Center
من مناقشة سابقة يمكن ملاحظة بوضوح أن دمج سلاسل نصية بطولات مختلفة قد يكون معقدًا، لأن جميع السلاسل في المصفوفة يجب أن تكون بطول متساوي. قمنا بإضافة مسافات خالية في نهاية السلاسل لجعل طولها متساويًا.
لكن، الطريقة الأكثر فعالية لتكوين سلسلة متكاملة هي تحويل مصفوفة النتائج إلى مصفوفة خلية.
MATLAB单元数组可以在数组中保存不同大小和类型的数据。单元数组提供了一种更灵活的方式来存储长度可变的字符串。
cellstr函数将字符数组转换为字符串的单元格数组。
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile)
عند تشغيل الملف، يظهر النتيجة التالية -
{ [1,1] = Zara Ali [2,1] = Sr. Surgeon [3,1] = R N Tagore Cardiology Research Center }
يقدم MATLAB العديد من وظائف النصوص لإنشاء، دمج، تحليل، مقارنة وتعامل النصوص.
يقدم الجدول أدناه تقريرًا مختصرًا عن وظائف النصوص في MATLAB-
الوظيفة | الفعالية |
---|---|
وظائف لتخزين النص في مجموعة الأحرف، دمج مجموعات الأحرف، إلخ | |
blanks | إنشاء نص من مسافات |
cellstr | إنشاء مجموعة من خلايا النصوص من مجموعة الأحرف |
char | تحويل إلى مجموعة من الأحرف (نص) |
iscellstr | تحديد ما إذا كانت المدخلات هي مجموعة خلايا نصية |
ischar | تحديد ما إذا كان العنصر هو مجموعة من الأحرف |
sprintf | تحويل البيانات إلى نص منسق |
strcat | دمج النصوص أفقيًا |
strjoin | دمج النصوص في نطاق خلية كنص واحد |
تحديد جزء من النص، وظائف البحث والإحالة للنص الفرعي | |
ischar | تحديد ما إذا كان العنصر هو مجموعة من الأحرف |
isletter | مكون من النص كحرف |
isspace | مكون من النص كمسافة |
isstrprop | تحديد ما إذا كان النص ينتمي إلى فئة معينة |
sscanf | قراءة بيانات منسقة من النص |
strfind | البحث عن نص فرعي داخل نص آخر |
strrep | البحث عن نص فرعي وإحالته |
strsplit | تقسيم النص عند حرف تقسيم محدد |
strtok | جزء مختار من النص |
validatestring | فحص صحة النص المكون من الكلمات |
symvar | تحديد الرموز المتغيرة في التعبير |
regexp | التوافق مع تعبير النص النموذجي (التفريق بين الحروف الكبيرة والصغيرة) |
regexpi | 匹配正则表达式(不区分大小写) |
regexprep | 使用正则表达式替换字符串 |
regexptranslate | 将字符串转换为正则表达式 |
字符串比较功能 | |
strcmp | 比较字符串(区分大小写) |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前n个字符(区分大小写) |
strncmpi | 比较字符串的前 n 个字符(不区分大小写) |
用于将字符串更改为大写或小写,创建或删除空格的函数 | |
deblank | 从字符串末尾去除尾随空白 |
strtrim | 删除字符串的前导和尾随空格 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写 |
strjust | 对齐字符数组 |
以下示例说明了上述一些字符串函数-
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
A = pi*1000*ones(1,5); sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
عند تشغيل الملف، يظهر النتيجة التالية -
ans = 3141.592654 3141.59 +3141.59 3141.59 000003141.59
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
%字符串单元格数组 str_array = {'red','blue','green', 'yellow', 'orange'}; %将单元格数组中的字符串合并为单个字符串 str1 = strjoin(str_array, "-") str2 = strjoin(str_array, ",")
عند تشغيل الملف، يظهر النتيجة التالية -
str1 = red-blue-green-yellow-orange str2 = red,blue,green,yellow,orange
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
students = {'Zara Ali', 'Neha Bhatnagar', ...} 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma', ... 'Nuha Ali', 'Reva Dutta', ... 'Sunaina Ali', 'Sofia Kabir'; %strrep函数搜索并替换子字符串。 new_student = strrep(students(8), 'Reva', 'Poulomi') %عرض الأسماء first_names = strtok(students)
عند تشغيل الملف، يظهر النتيجة التالية -
new_student = { [1,1] = Poulomi Dutta } first_names = { [1,1] = Zara [1,2] = Neha [1,3] = Monica [1,4] = Madhu [1,5] = Madhu [1,6] = Bhawna [1,7] = Nuha [1,8] = Reva [1,9] = Sunaina [1,10] = Sofia }
أنشئ ملف سكريبت وأدخل الكود التالي فيه -
str1 = 'This is test' str2 = 'This is text' if (strcmp(str1, str2)) sprintf('%s and %s are equal', str1, str2) else sprintf('%s and %s are not equal', str1, str2) fin
عند تشغيل الملف، يظهر النتيجة التالية -
str1 = This is test str2 = This is text ans = This is test and This is text are not equal