i need a program in matlab..??
Información
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
Mostrar comentarios más antiguos
I have values like:
0-56 it should multiply with 92.5,
57-112 it should multiply with 95.2,
113-168 it should multiply with 95.8,
169-225 it should multiply with 95.9.
I need a program for these conditions. Please help me friends...
Respuestas (3)
Walter Roberson
el 21 de Mayo de 2015
0 votos
histc with the two outputs to figure out which range you are in. Use the bin number to index a vector of constants to multiply.
5 comentarios
nani kalyan
el 21 de Mayo de 2015
Editada: nani kalyan
el 21 de Mayo de 2015
Joseph Cheng
el 21 de Mayo de 2015
did you read the document of histc? the examples in the documentation can be adapted to:
test = 1:15;
binranges = [1 5 10 16];
[N bincounts] = histc(x,binranges)
output = zeros(size(x));
for ind = 1:length(binranges)-1
output(bincounts==ind) = x(bincounts==ind)*ind;
end
nani kalyan
el 21 de Mayo de 2015
Joseph Cheng
el 21 de Mayo de 2015
x should be test. I was rushed but i'm sure you could have figured that out.
nani kalyan
el 21 de Mayo de 2015
Andrei Bobrov
el 21 de Mayo de 2015
a = [92.5,95.2,95.8,95.9]';
x = randi(225,15,1);
[~,ii] = histc(x,[0,57,113,169,225]);
out = x.*a(ii);
2 comentarios
nani kalyan
el 21 de Mayo de 2015
Walter Roberson
el 21 de Mayo de 2015
Use xlsread() to read column 3 of the file, and assign the values to x.
Image Analyst
el 21 de Mayo de 2015
Here's another approach that does what (I think) you said :
% Make up some sample data
numElements = 100;
maxValue = 200; % Whatever
% Create sample data.
data = maxValue * rand(1, numElements);
% 0-56 it should multiply with 92.5,
% 57-112 it should multiply with 95.2,
% 113-168 it should multiply with 95.8,
% 169-225 it should multiply with 95.9.
% Do the algorithm.
% 0-56 it should multiply with 92.5,
logicalVector = data >= 0 & data < 56;
data(logicalVector) = data(logicalVector) * 92.5;
% 57-112 it should multiply with 95.2,
logicalVector = data >= 57 & data < 112;
data(logicalVector) = data(logicalVector) * 95.2;
% 113-168 it should multiply with 95.8,
logicalVector = data >= 113 & data < 168;
data(logicalVector) = data(logicalVector) * 95.8;
% 169-225 it should multiply with 95.9.
logicalVector = data >= 169 & data < 225;
data(logicalVector) = data(logicalVector) * 95.9;
Note that if your data is floating point, there are some gaps in your ranges, like values between 56 and 57 don't get multiplied by anything. However if you just have integers, that's not a problem
La pregunta está cerrada.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!