If I have an array such as
Subject= [126;156;1992, 203, 186] % First two digits determine group, additional numbers are specific subject within that group.
Is there a method to only read the first two values of each row in order to determine what group the subject is?
Group= [12;15;19;20;18] %%%This is what I would like the result to be.

 採用された回答

Jos (10584)
Jos (10584) 2014 年 1 月 30 日

1 投票

Apply some arithmetic:
Subject = [126 156 1992 203 186 10 100 100000]
Group = fix(Subject ./ (10.^floor(log10(Subject)-1)))

1 件のコメント

Aldo Amaya
Aldo Amaya 2014 年 1 月 30 日
Thank you, this worked perfectly :)

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

その他の回答 (2 件)

Walter Roberson
Walter Roberson 2014 年 1 月 30 日

0 投票

Group = floor(Subject ./ 10);

1 件のコメント

Aldo Amaya
Aldo Amaya 2014 年 1 月 30 日
Thanks for the reply, the only issue is that they are not all the same number of elements. Subjects elements range from 3-5 currently.

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

Aldo Amaya
Aldo Amaya 2014 年 1 月 30 日
編集済み: Aldo Amaya 2014 年 1 月 30 日

0 投票

This was my solution but I wish there was a cleaner way to do it
Group = floor(Namex2 ./ 10);
i=1;
while i<=length(Group)
if Group(i)>=100
Group(i)=floor(Group(i)./ 10);
else
end
i=i+1;
end

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

製品

タグ

質問済み:

2014 年 1 月 30 日

コメント済み:

2014 年 1 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by