2012-12-02 13 views
-2

matlab給我這個錯誤matlab,錯誤'在這方面是不明確的,'

???錯誤:文件:Untitled2.m行:70列:在這種情況下19 的結構(發佈時間:這裏的代碼的最後一行) 「iPeaksK(... ...結束)」 是不明確的,因爲 「 iPeaksK「不能被確定爲變量的名稱 或函數。爲了使其成爲一個變量,分配給它;以允許它在執行時成爲函數 ,在所需陣列上用長度,大小或NUMEL調用 替換「結束」。

請問您能告訴我錯誤在哪裏? 非常感謝oyu。

%knee 
    xk = excel(:,13); 
    yk = excel(:,14); 
    zk = excel(:,15); 
    [peaksk, iPeaksk] = findpeaks(-yk); 
    peaksk=-peaksk; 
    wantedPeaksk = peaksk < ((max(yk) + min(yk))/2); %returning 0 or 1 
    peaksk = peaksk(wantedPeaksk); %now we only have the good peaks/indexes 
    iPeaksk = iPeaksk(wantedPeaksk); 
    figure;subplot(221); plot(iPeaksk,peaksk,'*');hold on;plot(yk) 
    IPEAKSLENGTHK = zeros(1, length(iPeaksk) - 1); 
    for i = 1 : length(iPeaksk) - 1 
     iPeaks1k = iPeaksk(i); 
     iPeaks2k = iPeaksk(i + 1) - 1; 
     IPEAKSLENGTHK(i) = length(iPeaks1k:iPeaks2k); 
    end 

    interpxsumk = zeros(1, 100); 
    interpysumk = zeros(1, 100); 
    interpzsumk = zeros(1, 100); 
    for i = 1 : length(iPeaksk) - 1 
     iPeaks1k = iPeaksk(i); 
     iPeaks2k = iPeaksk(i + 1) - 1; 

     %data between each pair of peaks - not interpolated 
     xPeaks12k = xk(iPeaks1k:iPeaks2k); 
     yPeaks12k = yk(iPeaks1k:iPeaks2k); 
     zPeaks12k = zk(iPeaks1k:iPeaks2k); 

     subplot(2,2,2) 
     plot3(xPeaks12k, zPeaks12k, yPeaks12k, 'r*') 
     title('final data (black) // interpolated data (green) // selected data (red)', 'FontSize', fontSize); 
     xlabel('x', 'FontSize', fontSize); 
     ylabel('z', 'FontSize', fontSize); 
     zlabel('y', 'FontSize', fontSize); 
     axis equal; 
     grid on; 
     hold on 

     %interpolate each cycle to take the average curve 
    originalIndexesk = 1 : length(xPeaks12k); % same as =linspace(1, length(xPeaks12), length(xPeaks12)) 
     interpIndexesk = linspace(1, length(xPeaks12k), 100); %creating 100 indexes from 1 to length(xPeaks12) 
     interpxk = interp1(originalIndexesk, xPeaks12k, interpIndexesk, 'spline'); %find new values=interpolate->spline_best option // http://www.mathworks.com/help/matlab/ref/interp1.html 
     interpyk = interp1(originalIndexesk, yPeaks12k, interpIndexesk, 'spline'); 
     interpzk = interp1(originalIndexesk, zPeaks12k, interpIndexesk, 'spline'); 
    plot3(interpxk, interpzk, interpyk, 'g*'); %cycles interpolated 
    interpxsumk = interpxsumk + interpxk; 
     interpysumk = interpysumk + interpyk; 
     interpzsumk = interpzsumk + interpzk; 
    end 
    newxk = interpxsumk/(length(iPeaksk) - 1); %average x -1inicial-1final-1 
    newyk = interpysumk/(length(iPeaksk) - 1); 
    newzk = interpzsumk/(length(iPeaksk) - 1); 

    plot3([newxk(end) newxk], [newzk(end) newzk], [newyk(end) newyk], 'k-', 'LineWidth', 5); %close to plot 

    %param 
    zzwalkingtimeK=(t(iPeaksK(end))-t(iPeaksK(1))) 
+0

如果您將代碼簡化爲某些展示問題的代碼可能會有所幫助,但這些代碼很少且完全獨立。 – carlosdc

回答

1

這個問題似乎是不同的資本化iPeaksKiPeasksk和的混合物和最終被混淆Matlab的,以爲iPeaksK是實際功能的使用。我會建議爲兩個大寫字母之一解決並修復所有其他字母。

+0

你是roght!非常感謝你 – user1852764

+1

@ user1852764:如果問題解決了你的滿意,你能否考慮接受答案? – carlosdc