मेरे पास लंबाई एन का वेक्टर वाई है। वाई (i) 1..एम. में एक पूर्णांक है। वाई को एन एक्स एम लॉजिकल मैट्रिक्स वाई में बदलने का एक आसान तरीका है, जहां y (i) j) = 1 अगर y (i) = j, लेकिन 0 अन्यथा? , एक कॉलम-वेक्टर कोवेक्टर को लॉजिकल मैट्रिक्स में कनवर्ट करें?
% If m is known (m = 3 here), you could write it out all at once
yy = [y == 1; y== 2; y == 3];
yy = reshape(yy, n, 3);
या
% if m is not known ahead of time
yy = [ y == 1 ];
for i = 2:m;
yy = [ yy; y == i ];
end
yy = reshape(yy, n, m);
मुझे एक और तरीका मिला ... सुनिश्चित नहीं है कि यह कोई बेहतर है ... लेकिन कम से कम यह एक पंक्ति पर फिट बैठता है: yy = repmat (y, 1, m) == repmat (1: m, n, 1); – notrick
'bsxfun' मल्टीथ्रेडेड मैटलैब फ़ंक्शंस में से एक है। इस प्रकार यह आपके समाधान से तेज़ होने की संभावना है। – Jonas