如何避免写作中的for循环\ b在a和b是不同的尺寸吗

1视图(30天)
我正在解决 在哪里 一个 是一个三维复杂的数组的维度 b 是一个二维的数组维度 。为了做到这一点,我创建一个for循环调用linsolve () 次了。
我可以避免写这个for循环,这样我就不用花费额外的计算调用linsolve () 次?看起来,pagemldivide()函数可能这样做的方法之一。
清晰的所有;关闭所有;
%原方法
Nx = 32;
=复杂(兰德(Nx + 1, Nx + 1, Nx),兰德(Nx + 1, Nx + 1, Nx));%是一个3 d复杂的数组中
b =兰德(Nx + 1, Nx);% b是一个二维数组
溶液= 0 (Nx Nx + 1);%的解决方案将是一个2 d复杂的数组
j = 1: Nx
概率= linsolve ((:,:, j)、b (:, j));% \ b
溶液(j) =概率。';%的大小(Nx Nx + 1)
结束
%的新方法
soln_tilde = pagemldivide ((:,:)。, b (:));%的大小(Nx + 1, - 1)
有一种使用pagemldivide()(或一个独立的Matlab函数)来避免编写一个for循环,得到相同的最终解决方案的尺寸吗 吗?

接受的答案

马特·J
马特·J 2023年2月18日
编辑:马特·J 2023年2月18日
溶液= pagemldivide (A,重塑(b, [], 1, Nx));
溶液=溶液(::)。”;
2的评论
马特·J
马特·J 2023年2月18日
哇!我认为有一个额外的逗号后第二个冒号。
有,但是我固定它。现在应该工作。如果是这样,请Accept-click答案。

登录置评。

更多的答案(0)

类别

找到更多的在循环和条件语句帮助中心文件交换

s manbetx 845


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!