Interview qustion matlab function

I asked to implement function it's input is a vector and plot it with time.
ex: lets suppose the input vector is [ 0 1 2 3 3 3 4 4 4 4 4 5 5 5 6 7 8]
if you can see there are 17 element so the time vector will be from [1......17]
but back to the input vector and take these values [0 1 2 3] can be represent from [1 3]
but time must be still [1 2 3 4], so when the slop is equal i need to keep first and last one and delete the middle elements.
back to input vector again i will see this [3 3 3] can be represent from [3 3]
but time must be still [3 4 5], so here will be constant line.
and so one the next input [4 4 4 4 4] equal to [4 4] with time from [6 7 8 9 10], Linear constant
so you need to generate new vector but the shape of it equal to the original shape.
Thanks in advance.

7 Kommentare

OCDER
OCDER am 29 Jun. 2018
Bearbeitet: OCDER am 29 Jun. 2018
Is this an interview question for a job?
Image Analyst
Image Analyst am 29 Jun. 2018
Is this a translation from a different language? If so, I can understand why it doesn't make sense. Otherwise, I would not work for that company. If every task they give you is explained and laid out like that, you'd have a very rough time working there, because that's essentially gibberish.
Guillaume
Guillaume am 29 Jun. 2018
In any case, what is the difficulty? It only takes two diff and a find to generate the shortened vector and corresponding time.
David Goodmanson
David Goodmanson am 29 Jun. 2018
suppose a = [1 2 2 2 2 3 4 5 6 7 7 7 7 8]. How does one accomplish the task with two diff and a find?
Rik
Rik am 29 Jun. 2018
One call to unique and an index then. The point raised by Image Analist is still valid and one I would agree with.
a = [1 2 2 2 2 3 4 5 6 7 7 7 7 8]
idx = [1, find(diff(diff(a)))+1, numel(a)]
plot(idx, a(idx));
David Goodmanson
David Goodmanson am 29 Jun. 2018
yes, I forgot that (in this case) points 3 thru 6 are not included.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Mohammed kandeel
Mohammed kandeel am 9 Jul. 2018

0 Stimmen

Hello Guillaume,
I just want to ask how many years of experience you take to get this solution?
i just used matlab less than one year. i can't answer this question within 2 minutes.

3 Kommentare

Image Analyst
Image Analyst am 9 Jul. 2018
It's not how many years of experience he has, it's that he's a freaking mind reader. I have 13 years of experience in MATLAB and I still can't figure it out. I read it many many times and I have no idea. The only ideas I had was that it was either (1) a bad original problem statement, (2) a bad Google translation, or (3) a bad translation on your part.
For example
"take these values [0 1 2 3] can be represent from [1 3]"
Huh? How/why on earth can/should an array of four values be represented by only two values, the second one and the fourth one? Stumps me.
And then it says
"but time must be still [1 2 3 4], so when the slop is equal i need to keep first and last one and delete the middle elements."
Again, huh? Does that mean that you now have [1,4]? OK, but why keep the 1st and 4th element this time when it was the 2nd and 4th for the [0,1,2,3] case? I have no idea.
Guillaume
Guillaume am 9 Jul. 2018
Yes, the hardest part is working out what the question is! Once that is understood, the problem reduces to finding the changes of slope in the data which is trivial to do in matlab. It doesn't take years of experience to understand that diff(X) is the slope, and diff(diff(X)) is the change of slope (2nd derivative).
Note: a good way to practice with similar problems is Cody
Mohammed kandeel
Mohammed kandeel am 14 Jul. 2018
Thanks for all of you, i really love to ask to understand to share knowledge.
Love you all and "Guillaume" i will start with link you provide me.
One more Question What is the best book to start with Matlab script , simulink and stateflow ?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 29 Jun. 2018

Kommentiert:

am 14 Jul. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by