====== MATLAB exercise solutions (Century College, CSCI 1081, Fall 2021) ====== a = [1 2 3 4 5 6]; %a = [1:6]; % also works disp(a * 7); % not provided. a = [2 3 1 5; 1 0 3 1; 0 2 -3 2; 0 2 3 1]; % either works for multiplying a matrix with a scalar: disp(a * 7); disp(a .* 7); a = [2 3 1 5; 1 0 3 1; 0 2 -3 2; 0 2 3 1]; b = inv(a); disp(a * b); % result is (approx.) identity matrix a = [2 3 1 5; 1 0 3 1; 0 2 -3 2; 0 2 3 1]; b = [1 2 3; 10 20 30; 0.1 0.2 0.3]; matrixinfo(a); matrixinfo(b); % square matrix of Inf values function matrixinfo(m) % matrix_info(m) % Tell the user whether mtx is a square matrix. If it is a square matrix, % display the matrix's transpose and inverse. msize = size(m); if ndims(m) == 2 && msize(1) == msize(2), disp('It''s a square matrix.'); disp('The transpose is:'); disp(m'); disp('The inverse is:'); disp(inv(m)); else disp('The matrix isn''t square.'); end % if end % function % Input data for three monkeys NUM_MONKEYS = 3; NUM_DAYS = 5; % initialize data to -1) data = ones(NUM_MONKEYS, NUM_MONKEYS) * -1; % Get monkey data for monkey = 1:NUM_MONKEYS, disp('----------'); % enter row data as days of week for day = 1:NUM_DAYS, is_valid = false; while ~is_valid, prompt = ['Monkey ' num2str(monkey) ', day ' num2str(day) ': ']; data(monkey, day) = input(prompt); is_valid = data(monkey, day) >= 0; if ~is_valid, disp('Try again.'); end; % if end % while end % inner for end % outer for % for each column, compute the average: avgeaten = zeros(1, NUM_DAYS); for day = 1:NUM_DAYS, avgeaten(day) = mean(data(:, day)); end % for % Display report disp('====================================='); disp('The average amount eaten on each day:'); disp(avgeaten); disp(['The least amount eaten this week: ' num2str(min(min(data))) ]); disp(['The greatest amount eaten this week: ' num2str(max(max(data))) ]); disp('=====================================');