Script that performs the same as MATLAB function.

12 visualizaciones (últimos 30 días)
David Hughes
David Hughes el 4 de Ag. de 2015
Editada: Walter Roberson el 4 de Ag. de 2015
I am looking to create scripts for some internal functions: repmat, fliplr, flipud, and rot90. I am familiar with how each works but I am not sure where I should start. I have two of the four below.
%This script will perform the same operation as rot90
x = input('Enter the matrix: ');
[m,n] = size(x);
[i,j] = length(x);
y = input('Which direction to rotate the matrix\nEnter -90 or 90: ');
newvec = 0; %This is the variable for the result
if y == -90
%rotate counterclockwise
elseif y == 90
%rotate clockwise
end
%This script will duplicate the user entered matrix and create a new matrix
%by the number of rows and columns specfied by the user.
mat = input('Enter your matrix: \n');
rows = input('Enter number of rows: \n');
cols = input('Enter number of columns: \n');
newvec = zeros(rows,cols,mat);
  8 comentarios
Steven Lord
Steven Lord el 4 de Ag. de 2015
And the full text of the error message you receive from your repmat-like script is ... ?
[BTW, I'm assuming you're doing this for homework. If not, I recommend you simply use the functions included with MATLAB.]
David Hughes
David Hughes el 4 de Ag. de 2015
Editada: Walter Roberson el 4 de Ag. de 2015
Yes this is an assignment. The error I was getting was from some changes I made. I've gone back to the beginning and made some additions. I realized I needed to allocate the memory for the resulting matrix. Not getting an error but I am stuck. I am getting the correct size of the resulting matrix but not the correct values. I know that adding i + j in the nested for-loop is not the correct syntax for the correct result. I added i + j as a test and this is where I am stuck.
clear all
clc
mat = input('Enter your matrix: ');
rows = input('Enter number of rows: ');
cols = input('Enter number of columns: ');
[m,n] = size(mat);
newvec = zeros(rows*m,cols*n);
for i = 1:size(newvec)
for j = 1:size(newvec)
newvec2(i,j) = i + j;
end
end
disp(newvec2)

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by