从struct到array

1次查看(最近30天)
Konstantinos Andrikos
Konstantinos Andrikos 2020年3月18日
编辑: 亚当Danz 2020年3月18日
大家好,
我创建了一个结构体S:
信谊x1 x2 nnX1 nnX2
p1Space = linspace (0 50 10);
p2Space = linspace(0、25、10);
i = 1:10
S(i) = vpasolve(x1^2 + x2^2 - p1Space(i) == 0, x1*x2 - p2Space(i) == 0, [x1 x2]);
结束
当我为了将特定元素存储到两个数组(XX1和XX2)而执行以下for循环时,我得到一个错误:
k = 1:10
民(k) = S (k) .x1 (2, 1);
XX2 (k) = S (k) .x2 (2 l);
结束
当我输入命令窗口,例如S(4).x1(2,1),数字出现在屏幕上,但在for循环中,这不起作用。为什么会发生这种情况,我如何将这些特定的值存储到XX1和XX2数组中?
谢谢你!
1评论
埃米尔哈姆萨
埃米尔哈姆萨 2020年3月18日
你得到这个错误,因为S(1)X1没有两个元素。对于S(1).x2也是类似的情况。S的所有其他元素都有两个元素,因此命令窗口中的S(4).x1(2,1)。在命令窗口中尝试S(1).x1(2,1)。

登录评论。

接受的答案

亚当Danz
亚当Danz 2020年3月18日
编辑:亚当Danz 2020年3月18日
文档 ,大小 vpasolve 输出对应于解决方案的数量。万博 尤文图斯在第一次迭代中,这里只有一个解,
(1)
ans =
结构体字段:
x1:(1×1信谊]
x2:(1×1信谊]
在k-loop的第一次迭代(k=1)中,你会得到错误因为你试图得到x1和x2的第二行但它们只有一行。

答案(1)

Konstantinos Andrikos
Konstantinos Andrikos 2020年3月18日
谢谢你的回复。问题解决了!
1评论
亚当Danz
亚当Danz 2020年3月18日
很高兴我能帮上忙。

登录评论。

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!