में तारों के साथ foreach पाश मैं एक लूप बनाना चाहता हूं जो कई तारों पर फिर से चालू होगा, लेकिन Matlab में ऐसा करने में असमर्थ।Matlab
क्या काम करता है:
for i=1:3
if (i==1)
b='cow';
elseif (i==2)
b='dog';
else
b='cat';
end
disp(b);
end
और परिणाम है:
cow
dog
cat
लेकिन क्या मैं चाहता हूँ और अधिक सुरुचिपूर्ण कि तरह दिखेगा कुछ है:
for i=['cow','dog','cat']
disp (i);
end
और देना एक ही परिणाम।
क्या ऐसा करने के लिए मैटलैब में कोई विकल्प है?
अलावा:
मैं तार के रूप में शब्दों पर बाद में उपयोग करने के लिए और बस नहीं प्रदर्शित करने के लिए (disp
सिर्फ एक उदाहरण के रूप में किया गया था) की जरूरत है।
clear all;
close all;
clc;
global fp_a
global TEST_TYPE
global SHADE_METHODE
for fp_a=11:24
for shade={'full','fast'}
SHADE_METHODE=shade(1);
for test={'bunny','city'}
TEST_MODE=test(1);
fprintf ('fp_a:%d | test: %s | shade: %s',fp_a,TEST_TYPE,SHADE_METHODE);
ray_tracing;
end
end
end
यह रूप में मान कोशिकाओं के रूप में रहते हैं और न तार मैं त्रुटि संदेश मिलता है काम नहीं करता है:: मैं अपने वास्तविक कार्यक्रम में सेल सरणियों का उपयोग करने की कोशिश की है
??? ==> fprintf फ़ंक्शन का उपयोग करने में त्रुटि 'सेल' इनपुट के लिए परिभाषित नहीं है।
* -मुझे वास्तव में fprintf
की आवश्यकता नहीं है, मैं इसे जांचने के लिए उपयोग करता हूं कि मान सही हैं।
** - ray_tracing
मेरी कोड तार
अतिरिक्त में समस्या सिर्फ वाक्यविन्यास है। आपको घुंघराले ब्रेसिज़ का उपयोग करने की आवश्यकता है - 'परीक्षण {1} '- सेल से चार सरणी निकालने के लिए, सामान्य कोष्ठक नहीं -' परीक्षण (1)' - जो सरणी में पहला सेल चुनता है, प्रभावी रूप से यहां कुछ भी नहीं कर रहा है। ओली का उदाहरण कोड फिर से जांचें; ध्यान दें कि वह 'i {1}' में घुंघराले ब्रेसिज़ का उपयोग कर रहा है। (इसके अलावा, यदि आप इससे बच सकते हैं तो ग्लोबल्स का उपयोग न करें।) –
आपको 'SHADE_METHODE = छाया {1};' SHADE_METHODE = छाया (1) के बजाय '' – Oli
संभावित डुप्लिकेट का उपयोग करना चाहिए [क्या MATLAB में कोई foreach है? यदि हां, तो अंतर्निहित डेटा में परिवर्तन होने पर यह कैसा व्यवहार करता है?] (Http://stackoverflow.com/questions/408080/is-there-a-foreach-in-matlab-if-so-how-does-it-behave -if-the-underlying-data-c) –