2012-01-14 11 views
2

私はいくつかの変数に関数を適用したいと思います。これを行うには良い方法がありますか?変数上のMatlabループ(初心者)

同様:

M = ones(2,2) 
N = zeros(3,3) 
M = M + 1 
N = N + 1 

作品が、私は一種の何かをしたいと思います:

M = ones(2,2) 
N = zeros(3,3) 
L = ?UnknownStructure?(M, N) 
for i = 1:length(L) 
    L(i) = L(i) + 1 
end 

または完全に変数のセットに関数を適用するためのより良い方法はありますか?

+0

私はあなたが 'evalin'を使うことができると思いますが、私はそれをお勧めしません。 –

答えて

4

あなたは細胞を使用することができます。

M = ones(2,2) 
N = zeros(3,3) 
L = {M, N}; 
[email protected](x) x+1; 
L2=cellfun(funct, L, 'UniformOutput',false); 
0

試してみてください。

a = ones(2,2) 
arrayfun(@(x) 2*x , a) 

あなたが好きな機能()を行うことができます。

+0

このような行列をいくつかの行列に適用する方法はまだわかりません。 – rallen

2

MATLABでの参照のようなものは、あなたが同じ行列を指す2つの異なる変数名を持つことができるという意味で、ありません。

しかし、行列の配列を持つことができます。

L = { M, N }; 
for i = 1:length(L) 
    L{i} = L{i} + 1 
end 

このコードをOctaveでテストしました。ただし、ソース行列M、Nはこれによって変更されません。