मैं एन-तत्वों के साथ एक वेक्टर बनाने की कोशिश कर रहा हूं। मैं चाहता हूं कि मेरे प्रत्येक तत्व, x_5 को इस प्रकार परिभाषित किया जाए:
X_5 = (x_1)^2 + (x_2)^2 + (x_3)^2 + (x_4)^2
जहां प्रत्येक x_i = randn. यह वह स्क्रिप्ट है जिसका मैं अभी उपयोग कर रहा हूं:
x_1 = randn;
x_2 = randn;
x_3 = randn;
x_4 = randn;
for x_5 = (x_1)^2 + (x_2)^2 + (x_3)^2 + (x_4)^2
n=1000000
end
v=repelem(x_5,1000000);
मैं एक लूप कमांड को कार्यान्वित करना चाहता हूं, ताकि प्रत्येक x_5 x_5 के लिए एक विशिष्ट ऑपरेशन से मेल खाता हो। अर्थात्, मेरे वेक्टर में प्रत्येक x_5 मेरे एल्गोरिथम व्यक्तिगत रूप से द्वारा उत्पन्न होता है। इस स्क्रिप्ट के साथ, x_5 केवल एक बार उत्पन्न होता है, और मेरा वेक्टर तब इसी परिणाम की 1.000.000 प्रतियों से भर जाता है। इसके बजाय, मैं x_5 के लिए 1.000.000 गणना करना चाहता हूं, और फिर इन परिणामों के साथ अपना वेक्टर भरें।
बनाने के अलावा अन्य सुझाव
for x_5 = (x_1)^2 + (x_2)^2 + (x_3)^2 + (x_4)^2
n=1000000
end
काम का भी स्वागत है। मुझे यकीन नहीं है कि लूप कमांड यहां सबसे अच्छा विकल्प है, लेकिन मैं इस समस्या के साथ इसके बारे में जानना चाहता हूं।
1 उत्तर
आपका लूप केवल एक बार पुनरावृत्त होता है और संख्याएँ केवल एक बार उत्पन्न होती हैं। आपको तर्क को लूप में ले जाना होगा:
v = zeros(1, 1000000);
parfor n = 1:length(v)
v(n) = sum(randn(1, 4).^2);
end
आप कोड को कम कर सकते हैं
v = arrayfun(@(x) sum(randn(1, 4).^2), zeros(1, 1000000));
संबंधित सवाल
नए सवाल
matlab
MATLAB मैथवर्क्स द्वारा विकसित संख्यात्मक अभिकलन और विज़ुअलाइज़ेशन के लिए एक उच्च-स्तरीय भाषा और इंटरैक्टिव प्रोग्रामिंग वातावरण है। जब तक यह प्रश्न स्पष्ट रूप से दोनों के बीच समानता या अंतर के बारे में नहीं है, तब तक [matlab] और [octave] दोनों टैग का उपयोग न करें। इस टैग का उपयोग करते समय, कृपया MATLAB रिलीज़ का उल्लेख करें जिसके साथ आप काम कर रहे हैं (जैसे R2017a)।