Vectorizing Array -- Wrong Dimensions?

Hi all, I'm a native C programmer and am having a hard time understanding Matlab's behavior.
I have three arrays:
sample.currtargdist (2252 x 1)
sample.targloc (1 x 2552)
distance (6 x 2252)
I can't figure out why this code results in a 2252 x 2252 matrix:
for s = 1:setsize;
distance(s,:) = sqrt((sample.RIGHT_GAZE_X-loc(s).x).^2+(sample.RIGHT_GAZE_Y-loc(s).y).^2);
end
sample.currtargdist = distance(sample.targLoc,:);
When I try something like a '1' instead of ':', I just get the first column of the matrix. I want just the first row of the output matrix.

6 commentaires

Azzi Abdelmalek
Azzi Abdelmalek le 8 Juil 2015
Modifié(e) : Azzi Abdelmalek le 8 Juil 2015
This is not clear, what is sample.RIGHT_GAZE_X-loc? what is the value of setsize?
Nick G
Nick G le 8 Juil 2015
it's a measure of eyegaze position. It's in a 1 x 2552 array. Set size is 6. I'm measuring the distance of eyegaze from items on a screen.
Jan
Jan le 8 Juil 2015
Which one is "the output matrix"?
Nick G
Nick G le 8 Juil 2015
sample.targcurrdist
Nick G
Nick G le 8 Juil 2015
sample.targloc is an index that can be used to tell which distance value to pull
Stephen23
Stephen23 le 8 Juil 2015
Modifié(e) : Stephen23 le 8 Juil 2015
What are sample.RIGHT_GAZE_X, sample.RIGHT_GAZE_Y, setsize, loc.x and loc.y? If they are variables, what sizes are they?
"this code results in a 2252 x 2252 matrix": which variable is the output?

Connectez-vous pour commenter.

 Réponse acceptée

Jan
Jan le 8 Juil 2015
I want just the first row of the output matrix.
Perhaps you mean this:
sample.currtargdist = distance(sample.targLoc(1), :);
If targLoc has the size 1 x 2552 and distance is 6x2552, then distance(targloc,:) is expected to be 2552x2552 - or a bug, if the elements of targloc exceed the values 1:6.

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 8 Juil 2015

0 votes

Probably, the value of setsize is 2252, or maybe in your code, you have pre-allocated the variable distance with zeros(2252,2252)

Community Treasure Hunt

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

Start Hunting!

Translated by