Matrix indexing - Picking columns

So I trying to give an output a matrix which contains every fifth column of input (A). Below is what my current script look like.
function B = Script30( A )
B = A(:,1:5:end);
end

5 个评论

So, question?
So when i input a matrix it will output only every fifth columns of input matrix.
Important difference: your code is not a script but a function. It's begging for confusion to name a function script***.
Your function already returns every fifth column of the matrix, starting at column 1, so it's not clear what problem you're having
bondpen
bondpen 2018-4-15
编辑:bondpen 2018-4-15
I just in habit in this naming scheme lmao.
It giving me rows instead of columns.
What give you rows? The shown code extracts columns.

请先登录,再进行评论。

 采纳的回答

Do you mean this instead of your 1:5:end?
5:5:end
If you explicitly also want column 1 the you could use [1 5:5:end]

12 个评论

would like it output every 5th columns of the input. Also you second shouldn't it be something like [1,5:5:end]?
Maybe an example of exactly what you do want is required, because I have no idea
For example A is Matrix which is guaranteed to even multiple of 5 to ensure the output will have column of 5 and if it more than 5 it should give the 5th column and 10th column and vice versa.
@David Wu: The question is still not clear. What's wrong with David Fletcher's suggestion? It seems to do what you are asking for.
@david,
[1 5:5:end] and [1, 5:5:end] are exactly the same. In matlab, you can use a space or a comma for separating horizontal elements of a vector. Using a comma is considered safer.
This works greats but the output is rows instead the desire columns.
@Guillaume I don't dispute it. Unfortunately that's not what you've got. 1:5:end ~= 5:5:end ~= [1 5:5:end]
I have replaced the code to below: It still output rows, how did you make it out columns instead?
function B = Script30( A )
B = A(5:5:end)
end
A(:,5:5:end);
Gives me a columnised output on my system with a test matrix
Sorry, I meant replace the column list only, not the row indexing colon as well
Yea, that does the trick. What is ":," for? Does it tell command to choose columns?
What the first colon? It means all rows and columns 5,10,15...etc. If you don't have the first colon - as you have found - it will compact all selected columns into one row. Well that was a bit harder than it should have been, I think I need a lie down.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by