error using vertcat

16 Ansichten (letzte 30 Tage)
gitis
gitis am 14 Jun. 2012
Hey, I need this for university, and I cant figure out whats wrong.. Appreciate your help.
X0 = input ('Nuo, iveskite, X0 ===> ');
Xn = input ('Iki, iveskite, Xn ===> ');
Xh = input ('Zingsnis, iveskite, Xh ===> ');
A = input ('Iveskite konstanta A ===> ');
nx = 0;
for xv = X0:Xh:Xn
nx = nx + 1;
X(nx) = xv;
if ( xv <= 9)
Y(nx) = ((sqrt(xv^3)/((xv-1)*(xv-3)))+15*A/xv+1);
elseif (xv <= 21)
Y(nx) = ((A^4/16)+5*xv^3);
else
Y(nx) = (14-(sqrt(A)/3*xv^2));
end
end
disp( '+----------------+----------------+');
disp( '| X | Y |');
disp( '+----------------+----------------+');
for ix = 1:nx
str_x = num2str( X(ix), '%10.4f');
str_y = num2str( Y(ix), '%10.4f');
disp( [ '| ', blanks( 18-length(str_x)),str_x, ' | ',
blanks( 10-length(str_y)), str_y, ' |'] );
end
disp( '+------------+------------+');
str = num2str ( X0, '%10.4f');
disp( ['| X0 = ', blanks( 18-length(str)), str, ' |']),
str = num2str( Xn, '%10.4f');
disp( ['| Xn = ', blanks( 18-length(str)), str, ' |']),
str = num2str( Xh, '%10.4f');
disp( ['| Xh = ', blanks( 18-length(str)), str, ' |']),
str = num2str( A, '%10.4f');
disp( ['| A = ', blanks( 18-length(str)), str, ' |']),
disp( '+-------------------------+');
plot( X, Y);
and it comes out like this:
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
Please, suggest something :]
  1 Kommentar
Walter Roberson
Walter Roberson am 14 Jun. 2012
Which line is the error occurring on?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Andrei Bobrov
Andrei Bobrov am 14 Jun. 2012
X = input ('input X in form : (first : step : last) -> ');
X = X(:);
A = input ('input constant A -> ');
t1 = X <= 9;
t2 = X <= 21 & ~t1;
t3 = ~(t1|t2);
Y = zeros(size(X));
Y(t1) = sqrt(X(t1).^3)./ ((X(t1)-1).*(X(t1)-3)) + 15*A./X(t1)+1;
Y(t2) = A^4/16+5*X(t2).^3;
Y(t3) = 14-sqrt(A)/3*X(t3).^2;
c = cell2mat(strcat({'| '},num2str(X,'%0.4f'),{' | '},num2str(Y,'%0.4f'),{' |'}));
n = regexp(c(1,:),'\|');
N1 = char('-'*ones(1,n(end)-n(1)));
N1(n) = '+';
N2 = char(' '*ones(1,n(end)-n(1)));
N2(sort([floor(diff(n)/2)+n(1:end-1),n])) = '|X|Y|';
disp(N1);disp(N2);disp(N1);disp(c);disp(N1);
plot(X,Y)
grid on

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by