Hello, I have a loop problem in Matlab
Consider the following datasets:
models = 5x10 (5 rows, 10 columns)
bsdata = 5x20 (5 rows, 20 columns)
I want to do the following calculation:
Result=models(bsdata);
If I do so, I obtain a 5x20 dataset. How can I do this for all the 10 columns of models? I would like to obtain a 10x200 dataset? I have tried the following, but it doesn’t work:
for i=1:10
Result=models(:,i)(bsdata);
end
Thanks,
Pieter

댓글 수: 6

Fangjun Jiang
Fangjun Jiang 2011년 5월 30일
what do you mean by Result=models(bsdata) since models and bsdata are matrix. What operation do you want to do to obtain the results?
Charles
Charles 2011년 5월 30일
Hi,
your question is confusing and maybe you should frame it better.
models = ones(5, 10); %gives a 5 x 10 matrix
bsdata =zeros(5, 20): % 5 x 20 matrix
Result=models(bsdata); %Are not possible, bsdata is larger than models
Result=bsdata(models);%Possible. References bsdata indexed by models.
for i=1:10
Result=models(:,i)(bsdata);
end
This part is not really clear. I think it is better you rather clarify what you mean with words.
Pieter
Pieter 2011년 5월 30일
I try to explain it: bsdata is a dataset that picks random numbers from models. So if bsdata has the number 3, this means that it takes the third element from models. So if I do Results=models(bsdata), results will take the third number from models.
A short example:
models = [3;8;7;6]
bsdata = [2;2;1;4, 3;4;2;1]
If you do: result=models(bsdata);
result = [8;8;3;6, 7;6;8;3]
I hope this makes it more clear.
The problem I have is that he only does this calculation for the first column of models, and not for column 2-10.
Pieter
Pieter 2011년 5월 30일
@ Charles, you are right, my example is not correct. Instead of models being a 5x10 matrix, make it a 5x30 matrix, than it should work (I think)
Oleg Komarov
Oleg Komarov 2011년 5월 30일
Still not clear why you have a matrix for bsdata instead of a vector. How are you gonna draw a 5 by 20 matrix from a 5 by 30?
Pieter
Pieter 2011년 5월 30일
You are right, it are vectors. I was using the wrong word.

댓글을 달려면 로그인하십시오.

 채택된 답변

Oleg Komarov
Oleg Komarov 2011년 5월 30일

0 개 추천

Then:
Result = models(bsdata,:);
You will draw rows direclty fro models.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Measurement-Level Simulations에 대해 자세히 알아보기

태그

질문:

2011년 5월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by