I am very new to MATLAB but I have to deliver an assignment. How do I solve matrix dimension issue in line 10 and 11.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Frederick Kwame
am 11 Jun. 2024
Kommentiert: Frederick Kwame
am 12 Jun. 2024
Given the following matrix dimensions
L=39360*39360
y=39360*1
q=1*39360
E= 2.8709
X=39360*39360
T=39360*39360
code
1. dq=L*y;
2. dtr=dq.*q'/E;
3. ql = q * L;
4. ldf = L * y;
5. dt = zeros(39360, 39360);
6. dtr = zeros(39360, 39360);
7. for a = 1:39360
8. for b = 1:39360
9. if X(b, :) ~= 0
10. dt(a,b) = ql(:,a)*ldf(b,:) /X(b,:);
11. dtr(a,b) = (ql(:,a)*ldf(b,:)* T))/(X(b,:)*E);
else
dt(a, b) = 0;
dtr(a, b) = 0;
end
end
end
1 Kommentar
Walter Roberson
am 11 Jun. 2024
N = 39360;
L = rand(N, N);
y = rand(N, 1);
q = rand(1, N);
E = 2.8709;
X = rand(N, N);
T = rand(N, N);
dq=L*y;
dtr=dq.*q'/E;
ql = q * L;
ldf = L * y;
dt = zeros(39360, 39360);
dtr = zeros(39360, 39360);
for a = 1:39360
for b = 1:39360
if X(b, :) ~= 0
dt(a,b) = ql(:,a)*ldf(b,:) /X(b,:);
dtr(a,b) = (ql(:,a)*ldf(b,:)* T))/(X(b,:)*E);
1 0 1 2 1 2 1 0? 0 1 0 ?
else
dt(a, b) = 0;
dtr(a, b) = 0;
end
end
end
You have too many )
Akzeptierte Antwort
Walter Roberson
am 11 Jun. 2024
Verschoben: Walter Roberson
am 11 Jun. 2024
Your ldf is 39360 x 1. Your ql is 1 x 3936. Select rows and columns out of those and you get 1 x 1 and 1 x 1. Use * to multiply two 1 x 1 and you get 1 x 1. You cannot / between 1 x 1 and a 1 x something (not unless the "something" is 1)
%N = 39360; %too large for actual test
N = 3936;
L = rand(N, N);
y = rand(N, 1);
q = rand(1, N);
E = 2.8709;
X = rand(N, N);
T = rand(N, N);
dq=L*y;
dtr=dq.*q'/E;
ql = q * L;
ldf = L * y;
whos ql ldf
dt = zeros(N, N);
dtr = zeros(N, N);
for a = 1:N
for b = 1:N
if X(b, :) ~= 0
temp1 = ql(:,a);
temp2 = ldf(b,:);
temp3 = temp1 * temp2;
temp4 = X(b,:);
whos temp1 temp2 temp3 temp4
dt(a,b) = temp3 / temp4;
temp4 = (ql(:,a)*ldf(b,:)* T);
temp5 = (X(b,:)*E);
whos temp4 temp5
dtr(a,b) = (ql(:,a)*ldf(b,:)* T)/(X(b,:)*E);
else
dt(a, b) = 0;
dtr(a, b) = 0;
end
end
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!