Why would circshift stop working.

5 visualizzazioni (ultimi 30 giorni)
There is no evidence that circshift is working. The two plots are the same whereas yesterday a clear shift in the plots can be see. I have also printed out spect2 before and after the shift and there is none.
Using Matlab 2014
Before
Columns 49 through 56
0.570245000000000 0.570246000000000 0.570247000000000 0.570248000000000 0.570249000000000 0.570250000000000 0.570251000000000 0.570252000000000
3.848182812500000 3.704242187500000 3.475567187500000 3.204188671875000 2.899719335937500 2.559822851562500 2.223999414062500 1.932186718750000
After
Columns 49 through 56
0.570245000000000 0.570246000000000 0.570247000000000 0.570248000000000 0.570249000000000 0.570250000000000 0.570251000000000 0.570252000000000
3.848182812500000 3.704242187500000 3.475567187500000 3.204188671875000 2.899719335937500 2.559822851562500 2.223999414062500 1.932186718750000
  1 Commento
Jan
Jan il 9 Dic 2018
Modificato: Jan il 9 Dic 2018
The question is not clear yet. Why do you claim that circshift is "not working", and what does this exactly mean? Maybe you instruct circshift to shift the data by 0 elements or by the number of elements, such that the output equals the input?

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 9 Dic 2018
Modificato: Star Strider il 9 Dic 2018
What is the value of ‘td’? If it is 0, you won’t see any shift.
Is ‘spect2’ a vector or a matrix? (I couldn’t tell from your code.) If it’s a matrix, circshift will operate on the rows by default, with the syntax you’re using with it. You may need to tell it to operate on the columns.

Più risposte (2)

Jan
Jan il 9 Dic 2018
Use the debugger to find out, what happens: https://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html . Set a break point in the line, which does not do, what you expect. Then check the values of the variables, here most likely the number of shifted elements.
Remember that function do not stop working. They are not tired or in a bad mood. Either you have modified a function, e.g. by creating an own function called 'circshift.m'. Then the function does work, but you do call another one. Or the function does exactly what its inputs instruct it to do, but these inputs are not, what you expect them to be. Or the function works and the method you apply to checking the results is flawed.

Douglas Brenner
Douglas Brenner il 9 Dic 2018
I had been transposing matrics and released this morning as I was waking that this must have been the problem.
Thanks.

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by