Data type converts from integer to array

1 次查看(过去 30 天)
When I run the code below, I get an error that the index is not an integer value. Instead, my variable 'r' goes from being an integer to a 1x24 array. Why is this?
--------------------------------------------------------------
R = 1:0.25:6.75;
r = 1;
p = 0;
pout = 0;
Rn = 0;
record = zeros(100, 24);
Pout = zeros(31, 24);
for i = 1:100
for j = 1:24
if r < 6.75
Rn = 4 * r - 3; %Converts ECR to its index
pout = Pout(j, Rn); %Retrive's outage probability
p = randi([0 100], 1) / 100;
if p <= pout
r = floor(2 * R) / 4;
else
r = r + 0.25;
end
elseif r == 6.75
Rn = 4 * r - 3; %Converts ECR to its index
pout = Pout(j, Rn); %Retrive's outage probability
p = randi([0 100], 1) / 100;
if p <= pout
r = floor(2 * R) / 4;
end
end
end
record(i, j) = r;
end

采纳的回答

Walter Roberson
Walter Roberson 2023-10-19
Because R is a vector and you have
r = floor(2 * R) / 4;
which uses the vector R and assigns the result to r making r the same size as R ?

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by