Creating a row vector where the index of the vector is not equal to its element value
Ältere Kommentare anzeigen
I am working on a problem and i have an idea of how to do most of it but i am not sure how to do its last part. Any help would be appreciated. I am highlighting the part that i am talking about. The statement for the question is as follows:
Write a function called int_col that has one input argument, a positive integer n that is greater than 1, and one output argument v that is a column vector of length n containing all the positive integers smaller than or equal to n, arranged in such a way that no element of the vector equals its own index. In other words, v(k) is not equal to k for any valid index k.*
Akzeptierte Antwort
Weitere Antworten (1)
Because your question does not state anywhere that the output needs to be random, then the answer can be quite simple: just shift all of the values by one place. You can use circshift for this:
>> int_col = @(n) circshift((1:n)',-1);
>> V = int_col(5)
V =
2
3
4
5
1
>> V(1)
ans =
2
>> V(2)
ans =
3
>> V(5)
ans =
1
1 Kommentar
Andrei Bobrov
am 21 Jul. 2015
circshift((1:n)',randi([1,n-1]))
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!