Matlab:在循环中动态追加带有新字段的结构

时间:2016-09-29 11:13:56

标签: matlab loops structure

我是一堆标识为(id1, id2, id3, ... idN)的数据结构,包含变量(var1,var2,var3, ... varK)的单个数据字段,因此第一个结构看起来像

id1.data.variable1 = []
id1.data.variable2 = []
.
.
.

所有id共享相同的数据和变量结构。

现在,我非常希望在循环中向这些现有结构附加一个新变量(newvar)。

对于一个结构,我会这样做:

id1.data.newvar1 = id1.data.var1^2 

会将newvar1添加到id1.data id1.data.var1^2作为值for i = 1:length(id_list) id_list{i}.data.newvar = id_list{i}.data.var1^2 end

如果我尝试

<?php
    //Database connection starts
    ob_start();
    session_start();
    include_once('includes/config.php');
    //Database connection ends

    //export .csv file starts here
    $filename = "testing-exports.csv";

    header("Content-type: text/csv");
    header("Content-Disposition: attachment; filename=$filename");
    header("Pragma: no-cache");
    header("Expires: 0");

    $insquery = "SELECT username FROM r_institution where status=1";
    $insresults = $conn->query($insquery);
    foreach ($insresults as $rs) {
        $row = array();
        $row[] = stripslashes($rs["username"]);
        $content[] = $row;
    }
    $content = array();
    $title = array("Institution Emails");
    foreach ($insresults as $rs) {
        $row = array();
        $row[] = stripslashes($rs["username"]);
        $content[] = $row;
    }
    $output = fopen('php://output', 'w');
    fputcsv($output, $title);
    foreach ($content as $con) {
        fputcsv($output, $con);
    }
?>

我从非结构数组对象中获取&#34; Struct内容引用。&#34;错误。

赞赏任何意见。

1 个答案:

答案 0 :(得分:2)

您可以创建一个新的全局结构,其中包含您正在使用的结构集。因此,新结构将包含以下字段:

ID.id1, ID.id2, ..., ID.idnumber_of_ids

所以,为了循环每个id#:

for i = 1:number_of_ids
    name = ['id' num2str(i)];
    ID.(name).data.newvar = ID.(name).data.var1^2;
end

最后,保存没有ID高级别的结构:

save('here.mat','-struct','ID');