What is the problem in these code?
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
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 commentaire
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.
Réponses (2)
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 commentaires
Selin Soguksu
le 19 Déc 2012
José-Luis
le 19 Déc 2012
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.
Selin Soguksu
le 19 Déc 2012
0 votes
3 commentaires
Jürgen
le 19 Déc 2012
no problem
José-Luis
le 19 Déc 2012
And the mistake was?
Selin Soguksu
le 20 Déc 2012
Cette question est clôturée.
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!