calculating a few elements of a table, using a different equation

1 次查看(过去 30 天)
Hello!
Let's say that i am calculating every element of a 100X300 table by using equation A I use two for loops for i=1:100 for j=1:300 element(i,j)=... (it is the equation A) end end equation A involves the neighboring elements What if, a few elements of the table must be calculated with a different equation, equation B and this must happen inside the two for loops
for example elements (49,81) (49,82) (50,81) (50,82) (51,81) (51,82) (52,81) (52,82) i could use if and elseif function for every single element, like if i==49 && j==81 element(i,j)=...equation B elseif i==50 && j==81 element(i,j)=...equation B ...
...
end Is there another, better way to do it ???
Thanks a lot!

采纳的回答

Andrei Bobrov
Andrei Bobrov 2012-5-31
a = 49:52
b = 81:82
ii = fullfact([numel(b) numel(a)])
for jj = 1:size(ii,1)
element(a(ii(jj,2)),b(ii(jj,1))) = ...equation;
end
or
[b1,a1] = ndgrid(b,a);
ii = a1(:);
jj = b1(:);
for ij = 1:numel(ii)
element(ii(ij),jj(ij)) = ...equation;
end
  2 个评论
vaggelis vaggelakis
Thanks Andrei!
But i want this to be executed only when i and j indices are pointing to the listed elements,(49,81) (49,82) (50,81) (50,82) (51,81) (51,82) (52,81) (52,82)
the table i calculate has 101X301 elements and is named T. So
for i=1:101
for j=1:301
T(i,j)=...equation A
end
end
when i=49 and j=81 i want to calculate this point with equation B inside these two "for" loops!
I think, what you sent me is going to be executed on every iteration in these loops while i want equation B being executed ONLY when i,j are referring to these few predefined elements
I already tried to use "ismember" function, it worked but my code was significantly slower!
I also tried "if-ifelse" function for every each one of these elements(equation B) following by "else" for all the others (equation A). It works fine, but i m looking for a better code!
vaggelis vaggelakis
I forgot to mention that all the calculations are implicating the neighboring elements, that's why i am calculating element by element and the "equation A" elements can't be calculated without the "equation B" inside the loops!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by