Making an Array out of another Array if conditions are met
71 次查看(过去 30 天)
显示 更早的评论
Hello!
So I have a double array that is 15369x9. I am attempting to make a raster plot from this but inorder to do so i need to break the raw data array down into two different arrays, specifically one that has all of the trial starts in it( indicated by a number 1 in the 5th column) and licks(indicated by a 0 in the 5th column) I know I need to use a for loop to index through the array and I want to use an if loop to generate the new array, but I have no real idea how to do that. Any help would be greatly appreciated. Thanks!
0 个评论
采纳的回答
James Tursa
2022-6-7
编辑:James Tursa
2022-6-7
You don't need a for-loop for this. The best way is to use logical indexing. See this link:
Basically, you create a logical vector with the conditions you want, and then use that to index into the variable. E.g.,
M = your matrix
M(:,5) is the 5th column of the matrix
x = M(:,5)==1 is a logical vector indicating where there is a 1 in the 5th column
M(x,:) is a subset of M where there is a 1 in column 5.
Etc.
2 个评论
James Tursa
2022-6-7
The method shown retains the entire rows where the column data matches your desired value. I did make an edit to my original post so be sure to grab the latest code shown.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!