How can I write these two syntaxes in alternate from?
eval(['I',num2str(i),num2str(j),num2str(k),'=','getsiganl(filename1)',';']);
eval(['II',num2str(i),num2str(j),num2str(k),'=','smooth(sum(I',num2str(i),num2str(j),num2str(k),',2)',');']);

1 件のコメント

Stephen23
Stephen23 2021 年 3 月 18 日
編集済み: Stephen23 2021 年 3 月 18 日
Rather than trying to use an "Alternate form of eval function", you should just write your code using much simpler and much more efficient indexing. Is there a particular reason why you cannot use indexing?

サインインしてコメントする。

 採用された回答

Bjorn Gustavsson
Bjorn Gustavsson 2021 年 3 月 18 日

0 投票

You'll have to learn good programming-habits and utilise the vectorized capabilities of matlab. This looks like a case where you might get away with multi-dimensional arrays - but that would require all your signals to have the same length. The safer option is to store all signals in a cell-array - there everything goes. Perhaps something like this:
I_all{i,j,k} = getsiganl(filename1);
I_all_smooth{i,j,k} = smooth(sum(I_all{i,j,k},2));
I would also suggest changing the indices i, j and k to i1, i2 and i3 - this makes me more comfortable when it comes to which order they should go in indexing and also leaves i and j for the imaginary constant.
HTH

2 件のコメント

Wiqas Ahmad
Wiqas Ahmad 2021 年 3 月 18 日
編集済み: Wiqas Ahmad 2021 年 3 月 18 日
@Bjorn Gustavsson Thank you. This is really what I wanted

サインインしてコメントする。

その他の回答 (1 件)

Matt J
Matt J 2021 年 3 月 18 日

0 投票

Why not simply
I(i,j,k)=getsiganl(filename1);
II(i,j,k)=smooth(sum(I(i,j,k),2))
Be mindful though that if i,j,k are scalar coordinates, neither the original eval form nor the above make sense.

2 件のコメント

Bjorn Gustavsson
Bjorn Gustavsson 2021 年 3 月 18 日
If getsiganl returns a 2-D matrix it kind of makes sense, note that the eval-version would generate variables with names like I123 for i = 1, j = 2 and k = 3 and then the completely inuntangleable _I1234 for all of [i, j, k] = [12, 3 4], [1 23 4] or [1 2 34]...
Wiqas Ahmad
Wiqas Ahmad 2021 年 3 月 18 日
@Matt J I think I have checked this in prior but haven't worked. Anyway I got the right answer. Thank you

サインインしてコメントする。

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by