how can i make a general matrix?

i asked this question many times but still have a problem....someone help me please i need answer as soon as possible...

2 comentarios

John D'Errico
John D'Errico el 8 de En. de 2022
Editada: John D'Errico el 8 de En. de 2022
I see you still have problem. However, the issue is you need to EXPLAIN clearly what you need. If you cannot explain what your goal is, how can you expect help?
Is this matrix symmetric? That is, is it true that x(i,j) == x(j,i) always? The rule for x12 that you show would seem to say that is true.
Would x(2,2) be the sum of 5 elements? Thus... sum(L([1 4 5 6 7],4))?
Finally, it really helps if you post actual code, rather than a PICTURE of code. For example, while I can look at the matrix L, I cannot paste it into MATLAB.
arian hoseini
arian hoseini el 8 de En. de 2022
thats on me and im sorry for my explanation
L =[1 2 0.1 0.2 0.02
1 4 0.05 0.2 0.02
1 5 0.08 0.3 0.03
2 3 0.05 0.25 0.03
2 4 0.05 0.1 0.01
2 5 0.1 0.3 0.02
2 6 0.07 0.2 0.025
3 5 0.12 0.26 0.025
3 6 0.02 0.1 0.01
4 5 0.2 0.4 0.04
5 6 0.1 0.3 0.03]
%-------------------------------Program strat her--------------------------
nl = L(:,1); nr = L(:,2); R = L(:,3);
X = L(:,4); Bc = j*L(:,5);
nbr=length(L(:,1)); nbus = max(max(nl), max(nr));

Iniciar sesión para comentar.

 Respuesta aceptada

Torsten
Torsten el 8 de En. de 2022
Editada: Torsten el 8 de En. de 2022
function main
L = [1 2 0.1 0.2 0.02; ...
1 4 0.05 0.2 0.02; ...
1 5 0.08 0.3 0.03; ...
2 3 0.05 0.25 0.03; ...
2 4 0.05 0.1 0.01; ...
2 5 0.1 0.3 0.02; ...
2 6 0.07 0.2 0.025; ...
3 5 0.12 0.26 0.025; ...
3 6 0.02 0.1 0.01; ...
4 5 0.2 0.4 0.04; ...
5 6 0.1 0.3 0.03];
nl = L(:,1);
nr = L(:,2);
x = L(:,4);
n = numel(x);
Nb = 6;
mat = zeros(Nb,Nb);
n = numel(x);
for i = 1:Nb
for j = 1:Nb
logic = zeros(n,1);
if i==j
for k = 1:n
logic(k) = nl(k)==i || nr(k)==i;
end
else
for k = 1:n
logic(k) = (nl(k)==i && nr(k) ==j) || (nl(k)==j && nr(k)==i);
end
end
mat(i,j) = sum(x(logic==1));
end
end
mat
end

3 comentarios

arian hoseini
arian hoseini el 8 de En. de 2022
thank u thats what i needed but what about the matrix diagonal....i explained that x11 is the sum of all x's whose nl=1 and nr=1 (for example x44=x45+x14+x24)
Torsten
Torsten el 8 de En. de 2022
Corrected.
arian hoseini
arian hoseini el 9 de En. de 2022
thank u so much.

Iniciar sesión para comentar.

Más respuestas (1)

Cris LaPierre
Cris LaPierre el 8 de En. de 2022

1 voto

3 comentarios

arian hoseini
arian hoseini el 8 de En. de 2022
i dont have much time i need the code as soon as possible.
Cris LaPierre
Cris LaPierre el 8 de En. de 2022
That's not really how Answers works.
x = zeros(Nb);
for i=1:Nb
for j=1:Nb
rowsToSum = L(:,1) == i & L(:,2) == j;
x(i,j) = sum(L(rowsToSum, 4));
end
end
disp(x)
i dont expect you to write the whole code for me so help me with this...i tried the top code but i get this
0 0.2000 0 0.2000 0.3000 0
0 0 0.2500 0.1000 0.3000 0.2000
0 0 0 0 0.2600 0.1000
0 0 0 0 0.4000 0
0 0 0 0 0 0.3000
0 0 0 0 0 0
for x11 i added this % x(i) = sum(L(rowsToSum, 4));
but still not working and as you see x21 should be like x12 but...the others are like this too

Iniciar sesión para comentar.

Categorías

Productos

Versión

R2016b

Preguntada:

el 8 de En. de 2022

Comentada:

el 9 de En. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by