How to use Find (or any other function) to create an Array

2 ビュー (過去 30 日間)
Lucinda Nott
Lucinda Nott 2020 年 11 月 15 日
コメント済み: Lucinda Nott 2020 年 11 月 17 日
Hi Everyone,
I have an array, S that appears as so:
And I want to Find the last place where a 1 occured. However, I essentially want to find the last place for each column (I am unsure of how to describe this)
I want my find to be as so:
Intervals = [1 1 1 1 1
3 2
4 ]
With using the max function I would like to create the array:
Max = [4 1 1 1 2]
The rows represent days and columns represent the replication - so essential I want to find the last day the replication achieved a 1.
Any help would be greatly appreciated even a push in the right direction :)

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 11 月 15 日
編集済み: Ameer Hamza 2020 年 11 月 15 日
Try this
S = [
1 1 1 1 1
0 0 0 0 1
1 0 0 0 0
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0];
[~, idx] = max(flipud(S));
idx = size(S,1)-idx+1;
Result
>> idx
idx =
4 1 1 1 2

その他の回答 (1 件)

Alan Stevens
Alan Stevens 2020 年 11 月 15 日
Here's another possible way
r = repmat((1:9)',1,5); max(r.*S_dash)
  1 件のコメント
Lucinda Nott
Lucinda Nott 2020 年 11 月 17 日
Thanks Alan - this worked a charm :)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by