What is the problem in these code?

Hello friends, I have a code like this:
for x=1:50
Nrows=size(orj_matr,1)
new_matr=randperm(Nrows)
new_matr=new_matr(1:50)
a(:,:,x)=orj_matr(new_matr,:)
end
When I wrote this codes to MATLAB, I have 50 different (50 rows-10 columns) matrices. Like this:
a(:,:,1) , a(:,:,2), a(:,:3), …………a(:,:,50)
And I want to calculate f1 and f2 for these 50 different matrices. When I wrote like this there was an error saying “Indexing must appear last in an index expression”.
f1=sum(a(:,:,x) (:,1:2:end),2);
f2=sum(a(:,:,x) (:,2:2:end),2);
What is the mistake in these codes? Please help me...

1 件のコメント

Jan
Jan 2012 年 12 月 19 日
編集済み: Jan 2012 年 12 月 19 日
It would be useful if you explain, what the the expression "a(:,:,x) (:,1:2:end)" should do. As long as it is no valid Matlab syntax, a suggestion for improvement requires guessing what you want to achieve. And an answer based on guesses can be worse than no answer.

回答 (2 件)

Jürgen
Jürgen 2012 年 12 月 19 日
編集済み: Jürgen 2012 年 12 月 19 日

0 投票

Hi,
sum(a(:,:,x) (:,1:2:end),2); is not correct , I think What do you want to do there? '(:,1:2:end)' is referring to the index and it put at the right place regards,J

3 件のコメント

Selin Soguksu
Selin Soguksu 2012 年 12 月 19 日
Sorry, I didn't understand what you mean. I want to add odd columns and even columns. f1 adds the odd columns and f2 adds even columns.
José-Luis
José-Luis 2012 年 12 月 19 日
I would recommend you read up on indexing.
a(:,:,x) (:,1:2:end)
is not a valid expression. I am guessing that what you want is something along the lines
squeeze(sum(a(:,1:2:end,:),2))
Also, please edit your code to make it more readable. That might attract more answers.
Jürgen
Jürgen 2012 年 12 月 19 日
編集済み: Jan 2012 年 12 月 19 日
to sum all even columns:sum(A(:,2:2:end)) for odd columns: sum(A(:,1:2:end))
Selin Soguksu
Selin Soguksu 2012 年 12 月 19 日

0 投票

Thanks all of you for the answers and comments. I saw my mistake and correct my codes. Now it works good. I know my codes are not clear enough, because I am very new with MATLAB. And also sometimes I can't tell you what I want because of my poor English.

3 件のコメント

Jürgen
Jürgen 2012 年 12 月 19 日
no problem
José-Luis
José-Luis 2012 年 12 月 19 日
And the mistake was?
Selin Soguksu
Selin Soguksu 2012 年 12 月 20 日
When I assign a(:,:,x) to a new variable, and use this variable to the entire of the code, there was no problem.

この質問は閉じられています。

製品

タグ

質問済み:

2012 年 12 月 19 日

閉鎖済み:

2021 年 8 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by