MATLAB में स्ट्रिंग और वर्ण वर्ग के बीच क्या अंतर है?Matlab में तारों और पात्रों के बीच क्या अंतर है?
a = 'AX'; % This is a character.
b = string(a) % This is a string.
MATLAB में स्ट्रिंग और वर्ण वर्ग के बीच क्या अंतर है?Matlab में तारों और पात्रों के बीच क्या अंतर है?
a = 'AX'; % This is a character.
b = string(a) % This is a string.
वहाँ MATLAB® में पाठ का प्रतिनिधित्व करने के दो तरीके हैं। आप चरित्र सरणी में पाठ स्टोर कर सकते हैं। एक सामान्य उपयोग चरित्र के वैक्टर के रूप में पाठ के छोटे टुकड़े को स्टोर करना है। और रिलीज 2016 बी में शुरू, आप स्ट्रिंग सरणी में टेक्स्ट के कई टुकड़े भी स्टोर कर सकते हैं। स्ट्रिंग एरे डेटा के रूप में पाठ के साथ काम करने के लिए कार्यों का एक सेट प्रदान करते हैं।
तत्व पहुंच:
यह कैसे दो अभ्यावेदन अलग है। विभिन्न लंबाई के char
वैक्टर का प्रतिनिधित्व करने के लिए, किसी को cell
सरणी का उपयोग करना था, उदा। ch = {'a', 'ab', 'abc'}
। तारों के साथ, वे वास्तविक सरणी में बनाए जा सकते हैं: str = [string('a'), string('ab'), string('abc')]
। हालांकि, एक स्ट्रिंग सरणी सीधे में index characters को, धनुषाकार कोष्ठक अंकन इस्तेमाल किया जाएगा:
str{3}(2) % == 'b'
मेमोरी का उपयोग करें। पात्रों के रूप में वर्ण कई बाइट्स का उपयोग करते हैं। string
रों भूमि के ऊपर है: अंतर को समझने के लिए शुरू करने के लिए
a = 'abc'
b = string('abc')
whos a b
रिटर्न
Name Size Bytes Class Attributes a 1x3 6 char b 1x1 132 string
सबसे अच्छी जगह the documentation है। मुख्य अंतर यह है, वहाँ के रूप में कहा गया है:
- एक चरित्र सरणी, वर्णों का एक क्रम है बस के रूप में एक संख्यात्मक सरणी संख्या का एक अनुक्रम है। एक सामान्य उपयोग टेक्स्ट के छोटे टुकड़े को चरित्र वैक्टर के रूप में स्टोर करना है, जैसे कि
c = 'Hello World';
।- एक स्ट्रिंग सरणी पाठ के टुकड़ों के लिए एक कंटेनर है। स्ट्रिंग एरे डेटा के रूप में पाठ के साथ काम करने के लिए कार्यों का एक सेट प्रदान करते हैं। पाठ को स्ट्रिंग सरणी में कनवर्ट करने के लिए,
string
फ़ंक्शन का उपयोग करें।
यहाँ अपने मतभेदों के बारे में कुछ महत्वपूर्ण बिंदु हैं:
char
बनाम string
। इस तरह उनके पास प्रत्येक के लिए परिभाषित तरीकों के विभिन्न सेट होंगे। इस बारे में सोचें कि आप अपने पाठ पर किस तरह के संचालन करना चाहते हैं, फिर सबसे अच्छा समर्थन करने वाले व्यक्ति को चुनें।चूंकि string
एक कंटेनर वर्ग है, इस बात से सावधान रहें कि इसका आकार समकक्ष वर्ण सरणी प्रतिनिधित्व से अलग कैसे है।
>> a = 'AX'; % This is a character.
>> b = string(a) % This is a string.
>> whos
Name Size Bytes Class Attributes
a 1x2 4 char
b 1x1 134 string
सूचना string
कंटेनर 1x1
के रूप में इसके आकार को सूचीबद्ध करता है (और स्मृति में अधिक बाइट्स तक ले जाता है) के रूप में इसके नाम का तात्पर्य, जबकि चरित्र सरणी है, कि, वर्णों की एक 1x2
सरणी: अपने उदाहरण का उपयोग करना।
इन्हें हमेशा एक दूसरे के लिए उपयोग नहीं किया जा सकता है, और आपको कुछ संचालन के लिए दोनों के बीच परिवर्तित करने की आवश्यकता हो सकती है। उदाहरण के लिए, string
वस्तुओं dynamic field names for structure indexing के रूप में इस्तेमाल नहीं किया जा सकता:
>> s = struct('a', 1);
>> name = string('a');
>> s.(name)
Argument to dynamic structure reference must evaluate to a valid field name.
>> s.(char(name))
ans =
1
स्ट्रिंग्स भूमि के ऊपर का एक सा है, लेकिन अभी भी चरित्र प्रति 2 बाइट्स से वृद्धि हुई है। प्रत्येक 8 वर्णों के बाद यह चर के आकार को बढ़ाता है। लाल रेखा y=2x+127
है।
v=[];N=100;
for ct = 1:N
s=char(randi([0 255],[1,ct]));
s=string(s);
a=whos('s');v(ct)=a.bytes;
end
figure(1);clf
plot(v)
xlabel('# characters')
ylabel('# bytes')
p=polyfit(1:N,v,1);
hold on
plot([0,N],[127,2*N+127],'r')
hold off
:
आंकड़ा का उपयोग कर बनाई गई है