Can't make this for loop work...
7 次查看(过去 30 天)
显示 更早的评论
I am trying to make this loop through so that I get a J1, J2, J3, and J4 matrix.
s1 = -.5773;
t1 = -.5773;
s2 = -.5773;
t2 = .5733;
s3 = .5773;
t3 = -.5773;
s4 = .5773;
t4 = .5773;
W1 = 1;
W2 = 1;
W3 = 1;
W4 = 1;
x1 = 3;
y1 = 2;
x2 = 5;
y2 = 2;
x3 = 5;
y3 = 5;
x4 = 3;
y4 = 4;
X_c = [x1 x2 x3 x4];
Y_c = [y1;y2;y3;y4];
for i = 1:4
J_i = (1/8)* X_c *[0 1-ti ti-si si-1; ...
ti-1 0 si+1 -si-ti; si-ti -si-1 0 ti+1; ...
1-si si+ti -ti-1 0] *Y_c
end
Sorry it has been a while since I have written any code and I am very inefficient.
1 个评论
回答(1 个)
dpb
2015-3-23
"...this loop through so that I get a J1, J2, J3, and J4 matrix"
Don't do that! See the FAQ for why not and "more better" ways...
4 个评论
Stephen23
2015-3-23
移动:DGM
2023-9-13
It is not clear why you need to define all of these values as separate variables. It would be much neater and simpler if you just did this:
W = [1,1,1,1];
x = [3,5,5,3];
y = [2,2,5,4];
... etc.
And then you could also use MATLABs very powerful code vectorization abilities to make the rest of your code neater and faster too.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!