首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MATLAB中输出‘for’循环的结果?

如何在MATLAB中输出‘for’循环的结果?
EN

Stack Overflow用户
提问于 2012-07-31 22:56:21
回答 2查看 1.2K关注 0票数 0

我有一个这样的代码:

代码语言:javascript
复制
[X, Y, Z]= meshgrid(0:5:50, 0:5:50, 0:3:3);
[t1, t2, t3]= meshgrid(35, 25, 3);

A=sqrt((X - t1).^2 + (Y - t2).^2 + (Z - t3).^2);

[rows1,cols1,pages1] = ind2sub(size(A), find(A<=5));

for i=1:1:length(rows1);
    [R1, R2, R3]= meshgrid(cols1(i)*5-5, rows1(i)*5-5, pages1(i)*3-3);
    [reader]=[R1, R2, R3]

    B=sqrt((X1 - R1).^2 + (Y1 - R2).^2 + (Z1 - R3).^2);
    [rowsB,colsB,pagesB] = ind2sub(size(B), find(B<=5));

    for j=1:1:length(rowsB);
        [T1, T2, T3]= meshgrid(colsB(j)*0.2-0.2+0.15, rowsB(j)*0.2-0.2+0.15, pagesB(j)*3-3);
        [tag]=[T1, T2, T3];
    end
end

我需要有来自"for“循环的所有结果,因为需要对这些结果应用"intersec”。但我面临着问题,因为"for“覆盖了结果,而我只取最后一个。如何让smth喜欢

代码语言:javascript
复制
[tag(i)]=[T1, T2, T3] where i is i=1:1:length(rows1).

我已经使用预分配应用了smth,但不起作用。

EN

回答 2

Stack Overflow用户

发布于 2012-07-31 23:04:26

通常,您可以使用单元数组:

代码语言:javascript
复制
tag = cell(length(rows1),1);
for i=1:length(rows1)
    tag{i} = [T1, T2, T3];
end

尽管它看起来像是一个简单的矩阵..

票数 2
EN

Stack Overflow用户

发布于 2012-07-31 23:15:14

为了将向量分配给矩阵的行,您需要使用冒号作为列索引来对列进行切片。如下所示:

代码语言:javascript
复制
tag = zeros(length(rows1), 3);
for i = 1:length(rows1)
    ...
    tag(i, :) = [T1, T2, T3];
end

编辑:修正了我的例子。我读错了你的代码。上面的内容更具一般性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11742942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档