how can i make a general matrix?

2 views (last 30 days)
i asked this question many times but still have a problem....someone help me please i need answer as soon as possible...
  2 Comments
John D'Errico
John D'Errico on 8 Jan 2022
Edited: John D'Errico on 8 Jan 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 on 8 Jan 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));

Sign in to comment.

Accepted Answer

Torsten
Torsten on 8 Jan 2022
Edited: Torsten on 8 Jan 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 Comments

Sign in to comment.

More Answers (1)

Cris LaPierre
Cris LaPierre on 8 Jan 2022
  3 Comments
Cris LaPierre
Cris LaPierre on 8 Jan 2022
That's not really how Answers works.
arian hoseini
arian hoseini on 8 Jan 2022
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

Sign in to comment.

Products


Release

R2016b

Community Treasure Hunt

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

Start Hunting!