如何替换多个阵列信谊容易吗?

52视图(30天)
设置:
=符号(“一个”4)
B =符号(“B”3)
x = A * (1:4, 1) + (B (1:3, 1);0]
潜艇(x, {A、B},{诊断接头([3 2 1 0]),诊断接头([1、3、5])})
输出:
一个=
[A1_1, A1_2 A1_3 A1_4]
[A2_1, A2_2 A2_3 A2_4]
[A3_1, A3_2 A3_3 A3_4]
[A4_1, A4_2 A4_3 A4_4]
B =
[B1_1, B1_2 B1_3]
[B2_1, B2_2 B2_3]
[B3_1, B3_2 B3_3]
x =
A1_1 ^ 2 + B1_1 + A1_2 * A2_1 + A1_3 * A3_1 + A1_4 * A4_1
B2_1 + A1_1 * A2_1 + A2_1 * A2_2 + A2_3 * A3_1 + A2_4 * A4_1
B3_1 + A1_1 * A3_1 + A2_1 * A3_2 + A3_1 * A3_3 + A3_4 * A4_1
A1_1 * A4_1 + A2_1 * A4_2 + A3_1 * A4_3 + A4_1 * A4_4
错误使用符号/潜艇>正常化(第231行)
条目在第二个参数必须标量。
错误信谊/潜艇> mupadsubs(第157行)
(X2, Y2、symX symY] =正常化(X, Y);% #好吧
错误信谊/潜艇(145行)
G = mupadsubs (F, X, Y);
错误在debug_sym(4号线)
潜艇(x, {A、B},{诊断接头([3 2 1 0]),诊断接头([1、3、5])})
尝试使用
信谊一个B
初始声明没有在索引阶段(x)的定义,因为这个符号被认为是标量。不过,似乎,潜艇可以正确地处理它们。
最有前途的(实际上 只有 我发现)的方法是应用替换一次,它连接到共同的逻辑维度检查:
潜艇(潜艇(x,诊断接头([3 2 1 0])),B,诊断接头((1、3、5)))
(输出)
ans =
10
0
0
0
但这降低了可读性,我认为它也会损害性能,特别是在做许多替换。

答案(2)

查兰的Jadigam
查兰的Jadigam 2020年3月11日
你好,
2 nd 和3 理查德·道金斯 “潜艇”函数的参数应该是 标量 向量 但不是细胞数组和他们需要的大小相匹配。在你的情况中“A”和“B”是不同的大小,所以解决方案是使符号数组大小相同,试试这个
潜艇(x, [B],[诊断接头([3 2 1 0])诊断接头([0]1、3、5日)))
方括号。如果不同大小的数组,那么试试这个会更好,
潜艇(潜艇(x,诊断接头([3 2 1 0])),B,诊断接头((1、3、5)))
你提到的。
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年3月11日
不不,细胞阵列是完全有效的和必要的,如果用在多个数组。

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2020年3月11日
V = @ (X) X (:)
潜艇(x, V (num2cell (
));V (num2cell (B))]、[V (num2cell(诊断接头([3 2 1 0]));V (num2cell(诊断接头((1、3、5))))))
虽然它不是很明显,这是细胞形态。第二个参数是构造单元阵列变量名,和第三个参数是构造一个细胞替换值的数组。
您还可以使用
V = @ (X) X (:);
潜艇(x, V(一个);(B)], [V(诊断接头(3 2 1 0));V(诊断接头(1、3、5))))
这是变量的向量形式。
这两种形式之间的区别是,在这第二个表单,不使用电池,每个条目在A和B必须替换为一个标量,而细胞形式我给第一,每个条目可能被替换为一个向量或数组。
这些需要改变B的大小匹配。
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年3月11日
扩大一点:
潜艇()可以接受数组变量作为第二个参数,和另一个数组相同的大小作为第三个参数,并根据相应的标量的替代位置。
潜艇也可以接受一个细胞数组变量的第二个参数,和单元阵列与第三个参数相同的大小,并将做同时替换的(可能是数组)细胞的内容对应的变量。
但潜艇无法接受一个包含多个单元阵列nonscalar为第二个参数数组。每个细胞条目必须标量。
我第一次代码建议以上变量的数组转换成细胞相同大小的数组,然后形成一个列向量的,这样您就可以连接多个这样的细胞阵列在一起即使不兼容的数组的大小。然后它同样替换值,形成细胞数组列向量。
第二个代码改革的数组变量为一个列向量,这样您就可以连接多个这样的数组。涉及任何细胞阵列。
如果你是用标量变量,它不是使用细胞方法特别有用。

登录置评。

标签

s manbetx 845


释放

R2018b

社区寻宝

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

开始狩猎!