Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
index must be a positive integer or logical
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
this is part of my code with SPEED=8 ASPECT=30
DOPPLER = 2925/(2925 + SPEED*cos(ASPECT)); TONE_A=88*DOPPLER; atten(TONE_A)=( 0.1*TONE_A^2/(1+TONE_A^2))+(40*TONE_A^2/(4.100+TONE_A^2))+(2.75*(10^-4)*TONE_A^2)+0.003;
i get Attempted to access atten(87.9768); index must be a positive integer or logical.
what is the problem ?
1 comentario
Varun Pai
el 14 de Oct. de 2015
From the above code, i understand that you are assigning the TONE_A th position element of matrix 'atten'. Matrix indexing in matlab can only be a positive integer or logical.
eg: atten(1),atten(2)..etc
Respuestas (1)
Star Strider
el 2 de Oct. de 2015
You first need to define ‘atten’ as a function if you want to call it as one:
atten = @(TONE_A) ( 0.1*TONE_A^2./(1+TONE_A^2))+(40*TONE_A^2./(4.100+TONE_A^2))+(2.75*(10^-4)*TONE_A^2)+0.003; % Anonymous Function ‘atten’ atten_TONE_A = atten(TONE_A); % Call ‘atten’ & Assign Output To A Variable
3 comentarios
Walter Roberson
el 14 de Oct. de 2015
atten = @(TONE) ( 0.1 * TONE^2 ./ (1+TONE.^2)) + (40 * TONE.^2 ./ (4.100 + TONE.^2)) + (2.75 * (10^(-4)) * TONE.^2) + 0.003; % Anonymous Function ‘atten’ atten_TONE_A = atten(TONE_A); atten_TONE_B = atten(TONE_B);
Thorsten
el 14 de Oct. de 2015
Editada: Thorsten
el 14 de Oct. de 2015
No. You define a single function for a TONE
atten = atten = @(TONE) ( 0.1*TONE.^2./(1+TONE.^2))+(40*TONE.^2./(4.100+TONE.^2))+(2.75*(10^-4)*TONE.^2)+0.003; % Anonymous Function ‘atten’
And call it with different arguments
TONE_A = 88*DOPPLER; AA = atten(TONE_A); TONE_B = 123*DOPPLER: % or whatever TONE_B you have AB = atten(TONE_B);
If you have many TONEs, this scheme will be cumbersome and you can call atten with a vector of all your TONEs
A = atten([TONE_A TONE_B TONE_C])
Note that I have changed Star Strider's function to use point-wise operations .^ such that it can handle multiple inputs.
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!