how to creating matrix h 4x2 with some rules
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have some trouble when creating matrix 4x2 with rules like below. the first column are integer and the other column are random number. I already create the syntax below.
for ii = 1:8,
nilai = mod(ii,2);
if nilai == 0
x(ii) = 0.95 + (1.05-0.95)*x(ii);
elseif nilai ~= 0
x(ii) = round(3 + (30-3)*x(ii));
elseif nilai ~= 0
x(ii) = 0.01 + (0.055-0.01)*x(ii);
else
x(ii) = 1.0 + (1.15-1.0)*x(ii);
end
end
x = reshape(x,4,2)';
but the result are
??? Error using ==> reshape
To RESHAPE the number of elements must not change.
anyone can help me with this problem..? any solutions are very welcome..
thank you.
0 commentaires
Réponse acceptée
the cyclist
le 21 Mar 2013
What is the shape of x before you start? It seems that it is probably not an 8-element array, so the reshape fails.
3 commentaires
the cyclist
le 21 Mar 2013
You did not answer my question. What is the shape of x BEFORE this loop?
As you can see from Image Analyst's answer, there is no problem if x is 1x8 before your loop.
Plus de réponses (1)
Image Analyst
le 21 Mar 2013
I got a different error message due to x not being predefined and your new x(ii) depends on your old x(ii). When I predefined x, it ran with no errors:
x = zeros(1, 8);
for ii = 1:8
nilai = mod(ii,2);
if nilai == 0
x(ii) = 0.95 + (1.05-0.95)*x(ii);
elseif nilai ~= 0
x(ii) = round(3 + (30-3)*x(ii));
elseif nilai ~= 0
x(ii) = 0.01 + (0.055-0.01)*x(ii);
else
x(ii) = 1.0 + (1.15-1.0)*x(ii);
end
end
x = reshape(x,4,2)'
In the command window:
x =
3 0.95 3 0.95
3 0.95 3 0.95
2 commentaires
Image Analyst
le 21 Mar 2013
% make the value of the 3rd column like 2nd
x(:,3) = x(:,2);
% make the value of the 3rd column like 4th
x(:,3) = x(:,4);
Voir également
Catégories
En savoir plus sur Lighting, Transparency, and Shading dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!