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 Kommentar

Jan
Jan am 19 Dez. 2012
Bearbeitet: Jan am 19 Dez. 2012
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.

Antworten (2)

Jürgen
Jürgen am 19 Dez. 2012
Bearbeitet: Jürgen am 19 Dez. 2012

0 Stimmen

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 Kommentare

Selin Soguksu
Selin Soguksu am 19 Dez. 2012
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.
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 am 19 Dez. 2012
Bearbeitet: Jan am 19 Dez. 2012
to sum all even columns:sum(A(:,2:2:end)) for odd columns: sum(A(:,1:2:end))
Selin Soguksu
Selin Soguksu am 19 Dez. 2012

0 Stimmen

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 Kommentare

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

Diese Frage ist geschlossen.

Produkte

Tags

Gefragt:

am 19 Dez. 2012

Geschlossen:

am 20 Aug. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by