Soru sorstruct yapısı halindeki bir veri setini for döngüsü içerisinde bir fonksiyona dahil etmek
ptmertdogan tarafından 3 yıl önce soruldu

Merhaba,
Matlab'da yeniyim. Bir konuda yardımınıza ihtiyacım var. İlgilenebilirseniz sevinirim.
Elimde dataset.fileName.movName.repName.fTime.dataName.segName.rotName şeklinde bir struct yapısı var.

fileName= {'isim'};
nameExt= {'dataset.','normalized.'};
snameExt= string(nameExt);
nfileName= string(fileName);
for i1= 1:length(nfileName)
movName={'AOG'};
nmovName= string(movName);
for i2=1:length(nmovName)
repName={'bir','iki','uc'};
nrepName= string(repName);
for i3=1:length(nrepName)
fTime={'TO'};%'TS'};
nfTime= string(fTime);
for i4=1:length(nfTime)
segName= {'L5S1','L3L4','T12L1','T8T9','C7T1','C1Head','RT4Shoulder','RShoulder','RElbow','RWrist','LT4Shoulder','LShoulder','LElbow','LWrist',...
'RHip','RKnee','RAnkle','RBallFoot','LHip','LKnee','LAnkle','LBallFoot'};
nsegName=string(segName);
for i5= 1:length(nsegName)
rotName={'_x','_y','_z'};
nrotName=string(rotName);
for i6=1:length(nrotName)
dataName={'jointAngle','angularVelocity','angularAcceleration'};
ndataName= string(dataName);
for i7=1:length(ndataName)
infileName(i1)= snameExt(1)+nfileName(i1)+'.'+nmovName(i2)+'.'+nrepName(i3)+'.'+nfTime(i4)+'.'+ndataName(i7)+'.'+nsegName(i5)+nrotName(i6);

end
end
end
end
end
end
end

Analiz etmem gereken pek çok dosya olduğu için böyle bir yola başvurdum. Struct yapısı içerisinde yer alan bir veriyi aşağıdaki fonksiyonun içerisine for döngüsü içerisinde dahil etmem gerekiyor.

örn;

x = linspace(0, 100, length(dataset.isim.AOG.uc.TO.angularAcceleration.LBallFoot_z));
y = 0:100;
normalized.isim.AOG.uc.TO.angularAcceleration.LBallFoot_z = spline(x,dataset.isim.AOG.uc.TO.angularAcceleration.LBallFoot_z, y);

Bunu for döngüsünün içerisine

A=[];
B=[];
B(k)= (infileName(k));
x = linspace(0, 100, length((B(k))));
y = 0:100;
A(k)= spline(x,(B(k)),y);
Normalized.(infileName(k))=(A(k));

bu şekilde yerleştirmeye çalıştığımda şu hatayı alıyorum.

Error using chckxy (line 30)
The first two inputs must have at least two elements.
Error in spline (line 72)
[x,y,sizey,endslopes] = chckxy(x,y);
Error in normalize (line 33)
A(k)= spline(x,(B(k)),y);

Umarım sorunumu anlatabilmişimdir. İlginiz için şimdiden teşekkür ediyorum.

2 Cevap
hakkans Yönetici tarafından 3 yıl önce cevaplandı

Merhaba, kodunuzu tam anlamamakla beraber spline kullanımınızdaki ikinci girdi olan B(k) tek bir değer gibi görünüyor. spline fonksiyonu girdi olarak spline interpolasyonu yapılabilecek x ve y değer setine ihtiyaç duyuyor. Mevcut durumda x linspace ile bir vektör olarak yazılmış, ama B bir vektör değil. spline fonksiyonunda spline(x,y,B(k)) şeklinde yazmanız gerekiyor olabilir, B(k) ile ne yaptığınızı çok anlamadım. Umarım yardımcı olur.

ptmertdogan tarafından 3 yıl önce cevaplandı

Teşekkür ederim