How to perform a for loop over a single excel column

I'm trying to change the color my scatter plot points depending on a 3rd column with a for loop that would iterate over the column. Here is my code:
data=xlsread('datafile.xlsx');
x = data(:,2);
y = data(:,3);
z = data(:,4);
for k = drange(length(z))
if z(k) == -2
c = [1,0,0];
sz = 100;
else
c = [0,1,0];
sz = 10;
end
end
scatter(x,y,sz,c, 'filled')
Any help?

4 commentaires

Luna
Luna le 9 Jan 2019
Modifié(e) : Luna le 9 Jan 2019
Could you please share your datafile.xlsx? What you are expecting from the code?
Also what is drange? I'm assuming it's a function otherwise the for k is pointless.
I can't share data file due to the nature of the data/source project, but it's organized into three columns. The first two columns are coordinates which I would plot, and the third column would change the color of the point (for example, if the value is -3 then the code would make that particular point larger and the color red). The values in the third column are either 1,0, -1,-2,-3. If it doesn't match a value, then the point would stay a smaller size and green.
drange is probably an error on my part. I'm trying to loop through the length of the 3rd column

Connectez-vous pour commenter.

Réponses (1)

Guillaume
Guillaume le 9 Jan 2019
Modifié(e) : Guillaume le 9 Jan 2019
I don't see the point of a loop. Simply use your 3rd column to construct a Nx3 matrix of colours:
colours = [1, 0, 0 ... -3
0, 0, 1 ... -2
0.5 0.5 1 ... -1
0, 1, 0 ... 0
0.2 .4 .6]; % 1
sizes = [100 ... -3
50 ... -2
20 ... -1
10 ... 0
5]; % 1
data = xlsread('datafile.xlsx')
rowindex = data(:, 4) + 4; %rescale from -3...1 to 1...5. For more generic code, use the 2nd output of ismember
rowsize = sizes(rowindex);
rowcolour = colours(rowindex, :);
scatter(data(:, 2), data(:, 3), rowsize, rowcolour, 'filled');

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

le 9 Jan 2019

Modifié(e) :

le 9 Jan 2019

Community Treasure Hunt

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

Start Hunting!

Translated by