با سلام
میخواهم ماتریس در هر حلقه for سایزش مجددا ایجاد شود. یعنی اگر در حلقه ی اول ، ماتریس B سایزش 290* 21 است، در دور بعدی for مجددا سایز جدید و داده های جدید بوجود بیاید. راه حل چیست؟
clc;
save(‘clusflag’);
load(‘clusflag’);
sum=0;
q=zeros(18,1);
sim=zeros(18,1);
for cluster=1:18
j=1;
sum=0;
m=0;
for row=1:1682 % movie number
if clusflag(row,21)==cluster
% {
b(j,:)=clusflag(row,:);
j=j+1;
end
end
[r, c]=size(b);
for item=1:r-1
for itemt=item+1:r
for d=2:20 % shabahat 2 item
m=b(item,d)*b(itemt,d);
sum=m+sum;
end
end
end
for i=1:r
for d=2:20
if b(i,d)==1
q(cluster)=18((r(r-1))/2);
end
end
end
% }
sim(cluster)= sum/q(cluster);
% b=zeros(:,:);
end
الان تو این خطوط کد در هر بار اجرا برای هر حلقه عملیات روی مقادیر قبلی انجام میشوند و با هم جمع میشوند
میخوام در هر حلقه ی مربوط به cluster مقادیر ماتریس b صفر شوندو در ضمن در هر حلقه ی cluster سایز ماتریس باید بصورت داینامیک عوض شود.
ممنون میشم راهنمایی کنید.