doubt to store a array values in for loop ?

1 回表示 (過去 30 日間)
RAVI MANDAVA
RAVI MANDAVA 2016 年 6 月 8 日
編集済み: Stephen23 2016 年 6 月 8 日
Dear sir i have doubt to store a array values in for loop. I will explain my code Program:
a=[1 2 3 4 5 6 7 8 9 10]
for i=1:3:10
k(i)=a(i)
end
I need store the values in k variable. i am getting answer k= 1 0 0 3 0 0 6 0 0 9 0 but i need answer like that k=1 3 6 9 is it p[ossible to write the answer like that .
please help me.
  1 件のコメント
Stephen23
Stephen23 2016 年 6 月 8 日
編集済み: Stephen23 2016 年 6 月 8 日
MATLAB is a high-level language, so why bother with an ugly loop as if it was just C or something similar? You can do it much neater, faster, and much more efficiently using basic MATLAB indexing:
>> a = [1,2,3,4,5,6,7,8,9,10];
>> b = a(1:3:10)
b =
1 4 7 10
>> c = a(1:2:10)
b =
1 3 5 7 9
Note that I gave two sequences: this is because your output sequence does not have an equal step size (it is not an arithmetic progression), so you cannot generate it using any method that assumes a constant step size (in particular the colon operator). You can check the step size of your solution:
>> diff([1,3,6,9])
ans =
2 3 3

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

回答 (2 件)

UNK
UNK 2016 年 6 月 8 日
Hi Ravi, If you have a row vector as a = 1:1:10 and you want only some entries as a new vector you can do b = a([1:3:10])
a = 1:1:10
b = a([1:3:10])
For loops are not efficient. You can look at this which may be useful

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 6 月 8 日
a=[1 2 3 4 5 6 7 8 9 10]
ii=0
for i=1:3:10
ii=ii+1;
k(ii)=a(i)
end

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by