how to get adress position inside vector
1 view (last 30 days)
Show older comments
hi!
please for some help
i have this vector
i need to some value of eld in a vector gravlo just in right position given in vector adress
but matlab say Subscript indices must either be real positive integers or logicals.
can someone help me how to fix it
gravlo=zeros(1,100);
eld =[ 0
-1.7222
0
7.0000
0
-1.7778
0
6.8889
0
-1.7778
0
7.0000
0
-1.7222
0
7.1111];
adress =[ 0
3
0
2
0
1
31
32
61
62
63
64
65
66
33
34 ];
gravlo(adress)=gravlo(adress)+eld.*20;
7 Comments
Jan
on 12 Mar 2022
Edited: Jan
on 12 Mar 2022
A simplified version of your code:
gravlo = zeros(427,1);
for iel=1:5
g = G(:,iel);
m = (g ~= 0);
gravlo(g(m)) = gravlo(g(m)) - eld(m) * 20;
end
Hints: Do not use "clear all" in productive code, because it is a waste of time only.
Use the buttons on top of the field for posting messages to format the code. This improves the readability.
Accepted Answer
Jan
on 12 Mar 2022
Copied from my comment as an answer:
gravlo = zeros(427,1);
for iel = 1:5
g = G(:, iel);
m = (g ~= 0);
gravlo(g(m)) = gravlo(g(m)) - eld(m) * 20;
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!