For command in function
2 次查看(过去 30 天)
显示 更早的评论
I have a function attached and would like it to automatically run it with x = 2:4 & y = 2:4, that is, the function to run 8 times & have 8 outputs, with inputs
x =2, y = 2
x = 2, y = 3
x = 2, y = 4
x = 3, y = 2
...
Should I write a 'for' command with the function? It does not seem to work the best this way.
10 个评论
Walter Roberson
2019-9-4
After you use ndgrid to build x y you can
x = permute(x, [3 1 2])
and the same for y. Then assuming R2016b or later, the & would give a 3d result, 621 by 3 by 3
Now take that and .* by dataset and sum along the first dimension. Then sum the result of the & itself along the first dimension to get counts. ./ the two qualities. You should now have a 1 x 3 x 3 array of means.
采纳的回答
darova
2019-9-4
You can use pdist2()
[X,Y] = meshgrid(2:4);
x = X(:);
y = Y(:);
D = pdist2(rowsncolumns,[x y]);
% D(:,1) - first column of D - distance from (rowscolumns) to (x1,y1) point
Indices you want: D == 0
Size of D: 621 x 9
3 个评论
darova
2019-9-4
Maybe not to use mean()
ix = D == 0;
data = repmat(dataset_pfc_tar_57_n1,[1 9]);
result = sum(data.*ix) ./ sum(ix);
size of result is 1 x 9
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!