How To change Diagonal Elements with a string in matrix using FOR loop or other preferred method?
19 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
the result is to have a square matrix with a string e.g. "A" as diagonal elements using FOR LOOP
example:
M =
A 0 0 0 0
0 A 0 0 0
0 0 A 0 0
0 0 0 A 0
0 0 0 0 A
or How can I Print my name like ALEX diagonally
example;
M =
A 0 0 0
0 L 0 0
0 0 E 0
0 0 0 X
Here is My code that gives a specific number I assigned to variable in loop; however when that number is replaced with string it results NAN value as Diagonal elements.
clc
clear
clear all
m=5;
n=5;
a=zeros(m,n);
for i=1:m
for j=1:n
if i==j
a(i,j)= 5 ;
else
a(i,j)=0;
end
end
end
disp(a)
clc
clear
clear all
m=5;
n=5;
a=zeros(m,n);
for i=1:m
for j=1:n
if i==j
a(i,j)= "A" ;
else
a(i,j)=0;
end
end
end
disp(a)
1 comentario
Turlough Hughes
el 24 de Sept. de 2022
You can't mix characters or string values into an array of type double like that. On the otherhand, you can atleast represent numbers in a string array. Seeing as this is an exercise, I'm just going to nudge you towards a solution. Try starting with the following:
a = string(zeros(5))
Respuestas (1)
David Hill
el 24 de Sept. de 2022
a='ALEX';
b=diag(double(a));
b(b==0)=48;
string(char(b))
char(b)
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements 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!