在matlab中将空矩阵更改为相同维度的零矩阵

时间:2017-06-30 14:48:37

标签: matlab matrix plot cell-array is-empty

我对matlab比较陌生,所以这可能是一个简单的问题,我为此道歉。

我有一个包含各种尺寸单元格的单元格数组。一些是空矩阵(0x2空矩阵,0x3空矩阵,0x16空矩阵......类似的东西),有些不是空矩阵。我试图像这样绘制单元格数组:

for n = 1:numel(cellarray)
    plot(cellarray{1}(n))
    hold on
end

但是因为我有一些空矩阵,当我尝试运行这个循环和绘图时,我收到一条错误消息。

有没有办法可以将单元格数组中的空矩阵更改为相同尺寸的零矩阵,以便我可以在没有错误信息的情况下绘制它?非常感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

用NaN填充空细胞。 Matlab不会绘制NaN。如果您拥有相同尺寸或​​双精度的所有内容,那么作为初学者就更容易理解,仅供参考。

所以,在你将任何东西放入你的Cell中之前,称为“cellarray”,请执行以下操作:

Cellarray = repmat({NaN},3,3); %无论你的细胞大小是多少

答案 1 :(得分:1)

您的所有代码正在执行 - 或尝试执行 - 正在打印单元格数组的第一个元素的第n个元素。由于单元格数组的第一个元素包含少于n个元素,因此您将收到显示在注释中的错误消息。

从你的描述中听起来好像你期望它绘制单元格数组的第n个元素 - 它没有这样做。

你最想要的,

for n = 1:numel(cellarray)
    if ~isempty(cellarray{n})
        plot(cellarray{n})
        hold on
    end
end

答案 2 :(得分:-1)

您可以使用嵌套for循环在单元格数组的每个元素中实现零值。

'use strict';

import React, { Component } from 'react';

import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

import Carousel from 'react-native-carousel';
import FactsApiFetcher from './facts-api-handler/facts-api-fetcher'

export default class AllRand extends Component
{ 

  constructor(props)
  {    
    const InitialnumberOfPages = 2;

    super(props);
    this.state = 
    {
      numberOfPages: InitialnumberOfPages,
      Pages: this._setInitialPages(InitialnumberOfPages)
    };
  } 

  _onPageSwitchAnimateEnd()
  {    
    let updatedNumberOfPages = this.state.numberOfPages + 1;
    let newArr = this._addPage(updatedNumberOfPages);

    this.setState({        
        numberOfPages: updatedNumberOfPages,        
        Pages: newArr
    });
  }

  render()
  {   
    return (
      <Carousel animate={false} hideIndicators={false} onPageChange={() => this._onPageSwitchAnimateEnd()}>
        { this.state.Pages }
      </Carousel>
    );
  }

  _setInitialPages(numberOfPages)
  {
    let tempArr = [];

    for(let i = 0; i < numberOfPages; i++)
    {
      tempArr.push(<View key={ i } style={ styles.shit1 }><FactsApiFetcher/></View>);
    }   

    return tempArr;
  }

  _addPage(updatedNumberOfPages)
  {    
    return this.state.Pages.concat([<View key={ updatedNumberOfPages - 1 } style={ styles.shit1 }><FactsApiFetcher/></View>]);    
  }
}

const styles = StyleSheet.create({
  shit1: {
    alignSelf: 'stretch',
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#FFFF00'
  }
});

AppRegistry.registerComponent('AllRand', () => AllRand);

你的矩阵是m个单元格的lxn数组。