"when i used Matlab function i got the error message" Colon operands must be all the same type, or mixed with real scalar doubles.

14 次查看(过去 30 天)
Hello there !
This is my text.xlxs file
function Voltage = fcn(~)
coder.extrinsic('xlsread')
current =3;
Signal=xlsread('test.xlsx'); % read from file
frq= size(Signal,1);
S12= size(Signal,2);
for i=1 :Signal
if (frq(i) == 2.4500 )
x=S12(i);
end
end
Power= x^2;
Voltage = Power/current;
end
It's keep show me this error when i run it " Colon operands must be all the same type, or mixed with real scalar doubles."
Actually I'm just a beginner in Matlab, So can you tell me please how can I fix it?
  2 个评论
Subhadeep Koley
Subhadeep Koley 2020-5-10
Hi, can you share your test.xlsx file? A first observation reveals that your definition of the indexing variable range i is not correct. The variable Signal is most probably a 2d matrix. Therefore you can not vary i from 1 to Signal.

请先登录,再进行评论。

回答(1 个)

Ayush Goyal
Ayush Goyal 2020-6-19
From my understanding of the question you are facing issue while extracting columns of Signal matrix into separate vectors as frq and S12. You can refer to the following link for how to extract columns of a matrix into separate vectors:
Also, iterate your for loop from 1 to number of rows in Signal Matrix. Check the following code:
function Voltage = fcn(~)
coder.extrinsic('xlsread')
current =3;
Signal=xlsread('test.xlsx'); % read from file
frq= Signal(:,1); % Extract first column of Signal
S12= Signal(:,2); % Extract second column of Signal
for i=1:size(Signal,1) %Iterate upto number of rows in Signal
if (frq(i) == 2.4500 )
x=S12(i);
end
end
Power= x^2;
Voltage = Power/current;
end

Community Treasure Hunt

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

Start Hunting!

Translated by