フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

error subscript indices integers or logicals

1 回表示 (過去 30 日間)
Payjay
Payjay 2016 年 10 月 20 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
for this code i get the error shown above, why? in particular it is for l = numel(((wechsel_X_idx(v):wechsel_X_idx(v+1))/2)-1); Y(l) = meaned_Y; i dont get it because when i try it with numbers without a for loop it works.. thanks anybody who can help!
if true
wechsel_X = diff(wertepaare(:,2));
wechsel_X_idx = find(wechsel_X);
for v = 1:(numel(wechsel_X_idx)-1)
meaned_Y = mean(Y(wechsel_X_idx(v)+1:wechsel_X_idx(v+1)));
Y(wechsel_X_idx(v):wechsel_X_idx(v+1)) = 0;
l = numel(((wechsel_X_idx(v):wechsel_X_idx(v+1))/2)-1);
Y(l) = meaned_Y;
end end
  1 件のコメント
Alexandra Harkai
Alexandra Harkai 2016 年 10 月 20 日
Which v value are you getting the error for? (Seems unlikely that line would cause the problem since the same indexing works in the line before.)

回答 (1 件)

Guillaume
Guillaume 2016 年 10 月 20 日
Without knowing the content of the variables, it's difficult for us to diagnose the problem. However, the line:
l = numel(((wechsel_X_idx(v):wechsel_X_idx(v+1))/2)-1);
is very suspicious. You're asking with numel how many elements there are in a vector. That vector is made of the values wechsel_X_idx(v):wechsel_X_idx(v+1). That you're dividing the content of the vector by 2 and then subtracting 1 to the elements is not going to change the number of elements, so your line is exactly the same as:
l = numel(wechsel_X_idx(v):wechsel_X_idx(v+1));
which would be obtained more simply and explicitly as:
l = wechsel_X_idx(v+1) - wechsel_X_idx(v) + 1; %note that wechsel_X_idx(v+1) is guaranteed to be greater than wechsel_X_idx(v)
So is the line doing what you want?
Note that the best way for you to find where the problem lies in your code is to debug it, executing each line step by step and inspecting the contents of the variable. It should quickly become obvious when the content deviates from your expectations.
  1 件のコメント
Payjay
Payjay 2016 年 10 月 22 日
you are of course right with the "numel-thing", thank you! and no it didnt work as i wanted! now it works, think i mixed up some loops in an inappropriate way. and ur hint with the numel thing was also good, anyway thanks! :)

この質問は閉じられています。

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by