【问题标题】:how to remove element from 4D matlab matrix如何从 4D matlab 矩阵中删除元素
【发布时间】:2012-07-31 07:13:06
【问题描述】:

您好,我有以下 4D 矩阵

for idx_number_panels = 1:length(number_panels) % range of PV panel units examined

for number_turbines = 0:2 % range of wind turbine units examined

    for number_batteries = 1:10 % range of battery units examined


        for h=2:25 %# hours

            for d = 1:number_of_days %# which day

                n = h + 24*(d-1);
                % hourly_deficit_1(...,..., h, d)= Demand(n)-(PV_supply(n)... %


                hourly_total_RES(idx_number_panels,number_turbines + 1,number_batteries, h,d)

我想从上面的 4D 矩阵中每 24 行删除整行,从而调整矩阵的大小。由于文档似乎没有帮助,这是否可能以及如何完成

谢谢

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:
    1. 制作一个包含所有要保留的行索引的向量
    2. 仅索引那些 hourly_total_RES 行并分配回 hourly_total_RES。

      trashidx = 1:24:idx_number_panels;

      keepidx = setdiff(1:idx_number_panels,rashidx);

      hourly_total_RES = hourly_total_RES(keepidx,:,:,:);

    而且我不知道为什么上面没有格式化为代码......

    【讨论】:

    • 所以您建议为每个维度使用一个“trashidx”向量? 1:24:idx_number_panels 会每 24 行申请一行吗?即 1 日、25 日、49 日等?
    • 从您上面的代码中,我认为您所指的 4D 矩阵是 hourly_total_RES 并且行由 idx_number_panels 索引。但这是你的代码,如果你说 1:24:h 那就这样吧。此外,如果您在 MATLAB 控制台中执行此操作,您将看到:1:24:100 ans = 1 25 49 73 97
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多