drukowanie zmiennej w postaci macierzy

0
N=input('wymiar macierzy: ')
A=round(100*rand(N,N));
A(A<10)=0;
A(A>90)=inf;
ilosc_liczb=sum(sum(a>=30&a<=50));
B=(A(A>=30&A<=50));
disp(strcat(['Macierz A po przekształceniach ma postać : ', num2str(A), '.']))

Nie rozumiem co jest nie tak w funkcji disp. Mogę np. wyświetlić ilosc_liczb, ale już macierzy A lub B nie.

1

Aby skorzystać z konkatenacji przy pomocy operatora [], musisz mieć zmienną o ilości wierszy 1
zmienna ilosc_liczb jest skalarem, liczbą a zmienna A jest macierzą o wymiarach N x N
możesz korzystać z funkcji mat2str

disp(A)
disp(['a', num2str(transpose(A(:))), 'b'])
disp(['a', mat2str(rand(3,5)), 'b'])

btw matlab jest case senstive zmienna A różni się od zmiennej a

0

@reptile333, mógłbyś zerknąć?
8d69fb40d4.png

x=round(10*rand(1))
if x<3
    wynik=x-1
elseif x>=3 && x<7
    wynik=x*(sin(x))
elseif x>=7
    wynik=1/(x^2+1)
end
x=1:10
for i = 1:10
    if x(i)<3 ;
        f(i)=x(i)-1 ;
    elseif x(i)>=3 & x(i)<7 ;
        f(i) = x(i)*sin(i);
    else x(i)>=7;
        f(i)=(1/(x(i)^2+1));
    end
end
disp(f)
for i=1:6
 for j=1:6
     if i~=j
        a(i,j)=1/(i-j);
     elseif i==j
         a(i,j)=0;
     end
 end
end
disp(a)
0
reptile333 napisał(a):

btw matlab jest case senstive zmienna A różni się od zmiennej a

Wiem o tym, to niedopatrzenie, dziękuję.

1

można krócej

%1
y = @(x) (x < 3) * (x - 1) + (x >= 3 && x < 7) * (x * sin(x)) + (x >= 7) * ((x ^ 2 + 1) ^ -1)
%2
arrayfun(y, 0:10)
%3
a = repmat(1:6, 6, 1)
b = 1 ./ (transpose(a) - a)
b(b == Inf) = 0 lub
b(a == transpose(a)) = 0

1 użytkowników online, w tym zalogowanych: 0, gości: 1