Matlab 如何使多元函数以矩阵为输入,以向量为输出?

Matlab 如何使多元函数以矩阵为输入,以向量为输出?,matlab,function,matrix,vector,Matlab,Function,Matrix,Vector,对不起,如果这个问题被问死了。假设我定义了这样一个函数 function out = myfun (x) out = x(1).^2 + x(2).^2; end 给出一个矩阵,如 X = unifrnd(0,1,100,2); 我想得到一个向量Y,对于I=1,2,…100 Y(i) = myfun(X(i,:)); 有什么函数可以用来避免涉及循环吗?unifrnd(100,2)这里不是问题吗 连续均匀分布的均匀随机阵列 R=unifrnd(A,B)返回从 从A到B区间上的连续均匀分布。尺

对不起,如果这个问题被问死了。假设我定义了这样一个函数

function out = myfun (x)
out = x(1).^2 + x(2).^2;
end
给出一个矩阵,如

X = unifrnd(0,1,100,2);
我想得到一个向量Y,对于I=1,2,…100

Y(i) = myfun(X(i,:));
有什么函数可以用来避免涉及循环吗?

unifrnd(100,2)这里不是问题吗

连续均匀分布的均匀随机阵列

R=unifrnd(A,B)返回从 从A到B区间上的连续均匀分布。尺寸 如果A和B都是数组,则R的大小是它们的公共大小。如果有的话 参数是标量,R的大小是另一个的大小 参数

R=unifrnd(A,B,M,N,…)或R=unifrnd(A,B,[M,N,…) 返回一个M-by-N-by-。。。数组


现在回答这个问题。。。 功能更改为处理输入的列…
这是相对简单的处理元素级幂和索引列

function out = myfun (X)
out = X(:,1).^2 + X(:,2).^2;
end
用法

lower_lim = 0
upper_lim = 1
X = unifrnd(lower_lim,upper_lim,100,2)
Y = myfun(X)

X
是否总是两列大小?@BillBokeey抱歉,应该是X=unifrnd(0,1100,2);对不起我的错误。你的解决方案完全可行。谢谢。不用担心,还有一点额外的注释:如果整个数组都来自同一个发行版
unifrnd
有点过头了,只需
rand(100,2)
就可以满足0-1的范围,或者缩放到最小值max
min+rand(100,2)*(max-min)